java.util.AbstractMap.SimpleEntry#getValue ( )源码实例Demo

下面列出了java.util.AbstractMap.SimpleEntry#getValue ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: protect   文件: ChainBuildingMessageHandler.java
/**
 * Handles message received over point-to-point links
 */
@Override
public void handleMessage(final Message message) {

	// TODO: Implement stuff here
	// System.out.println("OPT BFT --- Received unique authenticated message: " /*+
	// message*/);

	// Count votes for messages in a given position
	if (message instanceof Message) {
		final Message publicMessage = (Message) message;
		final Payload payload = publicMessage.getPayload();
		if (payload.getOpcode() == Payload.OpCode.BFT_CERTIFICATION) {
			final SimpleEntry<Long, SignedMessage> data = (SimpleEntry<Long, SignedMessage>) payload.getData();
			final long messagePosition = data.getKey();
			final SignedMessage bftMessage = data.getValue();
			recordVote(messagePosition, bftMessage, message.getSenderIndex());
		}
	}
}
 
源代码2 项目: protect   文件: PartialHandler.java
@SuppressWarnings("unchecked")
private static String computeEncryptedPartials(final ApvssShareholder shareholder, final String secretName,
		final Integer requesterId) throws NotFoundException {

	// This server
	final int serverIndex = shareholder.getIndex();

	// Epoch information
	final long epoch = shareholder.getEpoch();

	// Return encrypted partials
	final SimpleEntry<BigInteger, BigInteger> encryptedPartials = shareholder.computeEncryptedPartial(requesterId);
	final BigInteger encryptedShare1Part = encryptedPartials.getKey();
	final BigInteger encryptedShare2Part = encryptedPartials.getValue();

	// Return the result in json
	final JSONObject obj = new JSONObject();
	obj.put("responder", new Integer(serverIndex));
	obj.put("requester", new Integer(requesterId));
	obj.put("epoch", new Long(epoch));
	obj.put("share1_part", encryptedShare1Part.toString());
	obj.put("share2_part", encryptedShare2Part.toString());
	return obj.toJSONString() + "\n";

}
 
@Override
public Optional<P> authenticate(JwtContext context) throws AuthenticationException {
    final Timer.Context timer = gets.time();
    try {
        final SimpleEntry<JwtContext, Optional<P>> cacheEntry = cache.getIfPresent(context.getJwt());
        if (cacheEntry != null) {
            return cacheEntry.getValue();
        }

        cacheMisses.mark();
        final Optional<P> principal = authenticator.authenticate(context);
        if (principal.isPresent()) {
            cache.put(context.getJwt(), new SimpleEntry<>(context, principal));
        }
        return principal;
    }
    finally { timer.stop(); }
}
 
@Override
public ClusterResponse sendRequest(ClusterRequest request) throws Exception {
    if (!isReady()) {
        throw new SentinelClusterException(ClusterErrorMessages.CLIENT_NOT_READY);
    }
    if (!validRequest(request)) {
        throw new SentinelClusterException(ClusterErrorMessages.BAD_REQUEST);
    }
    int xid = getCurrentId();
    try {
        request.setId(xid);

        channel.writeAndFlush(request);

        ChannelPromise promise = channel.newPromise();
        TokenClientPromiseHolder.putPromise(xid, promise);

        if (!promise.await(ClusterClientConfigManager.getRequestTimeout())) {
            throw new SentinelClusterException(ClusterErrorMessages.REQUEST_TIME_OUT);
        }

        SimpleEntry<ChannelPromise, ClusterResponse> entry = TokenClientPromiseHolder.getEntry(xid);
        if (entry == null || entry.getValue() == null) {
            // Should not go through here.
            throw new SentinelClusterException(ClusterErrorMessages.UNEXPECTED_STATUS);
        }
        return entry.getValue();
    } finally {
        TokenClientPromiseHolder.remove(xid);
    }
}
 
源代码5 项目: protect   文件: EciesEncryptionClient.java
public void encryptFile() throws BadPaddingException, IllegalBlockSizeException, ClassNotFoundException,
		IOException, ResourceUnavailableException, BelowThresholdException {

	// Print status
	System.out.println("-----------------------------------------------------------");
	System.out.println("Beginning encryption of file: " + this.inputFile);

	// Get public key and current epoch from the server
	System.out.print("Accessing public key for secret: " + this.secretName + "... ");
	final SimpleEntry<EcPoint, Long> publicKeyAndEpoch = this.getServerPublicKey(secretName);
	System.out.println(" (done)");
	final EcPoint publicKey = publicKeyAndEpoch.getKey();
	final long currentEpoch = publicKeyAndEpoch.getValue();
	System.out.println("Public key for secret:    " + publicKey);
	System.out.println("Current epoch for secret: " + currentEpoch);
	System.out.println();

	// Reading
	System.out.print("Reading input file: " + this.inputFile + "... ");
	final byte[] plaintextData = Files.readAllBytes(inputFile.toPath());
	System.out.println(" (done)");
	System.out.println("Read " + plaintextData.length + " bytes.");
	System.out.println();

	// Perform ECIES encryption
	System.out.print("Performing ECIES encryption of file content... ");
	final byte[] ciphertext = EciesEncryption.encrypt(plaintextData, publicKey);
	System.out.println(" (done)");
	System.out.println("Encrypted length " + ciphertext.length + " bytes.");
	System.out.println();

	// Write ciphertext to output file
	System.out.print("Writing ciphertext to file: " + this.outputFile + "... ");
	Files.write(this.outputFile.toPath(), ciphertext);
	System.out.println(" (done)");
	System.out.println("Wrote " + ciphertext.length + " bytes.");
	System.out.println();

	System.out.println("Done.");
}
 
源代码6 项目: protect   文件: ApvssTest.java
private static void printErrors(final List<ApvssShareholder> shareholders)
{
	for (ApvssShareholder shareholder : shareholders)
	{
		System.out.println("Errors reported by shareholder with index = " + shareholder.getIndex() + ":");
		for (SimpleEntry<Integer, ErrorCondition> alert : shareholder.alertLog.getAlerts())
		{
			int reportedShareholder = alert.getKey();
			ErrorCondition error = alert.getValue();
			System.out.println("   Shareholder[" + reportedShareholder + "] committed a " + error + " error");
		}
	}
}
 
源代码7 项目: protect   文件: EciesEncryptionClient.java
public void encryptFile() throws BadPaddingException, IllegalBlockSizeException, ClassNotFoundException,
		IOException, ResourceUnavailableException, BelowThresholdException {

	// Print status
	System.out.println("-----------------------------------------------------------");
	System.out.println("Beginning encryption of file: " + this.inputFile);

	// Get public key and current epoch from the server
	System.out.print("Accessing public key for secret: " + this.secretName + "... ");
	final SimpleEntry<List<EcPoint>, Long> shareVerificationKeysAndEpoch = this.getServerVerificationKeys(secretName);
	System.out.println(" (done)");
	final EcPoint publicKey = shareVerificationKeysAndEpoch.getKey().get(0);
	final long currentEpoch = shareVerificationKeysAndEpoch.getValue();
	System.out.println("Public key for secret:    " + publicKey);
	System.out.println("Current epoch for secret: " + currentEpoch);
	System.out.println();

	// Reading
	System.out.print("Reading input file: " + this.inputFile + "... ");
	final byte[] plaintextData = Files.readAllBytes(inputFile.toPath());
	System.out.println(" (done)");
	System.out.println("Read " + plaintextData.length + " bytes.");
	System.out.println();

	// Perform ECIES encryption
	System.out.print("Performing ECIES encryption of file content... ");
	final byte[] ciphertext = EciesEncryption.encrypt(plaintextData, publicKey);
	System.out.println(" (done)");
	System.out.println("Encrypted length " + ciphertext.length + " bytes.");
	System.out.println();

	// Write ciphertext to output file
	System.out.print("Writing ciphertext to file: " + this.outputFile + "... ");
	Files.write(this.outputFile.toPath(), ciphertext);
	System.out.println(" (done)");
	System.out.println("Wrote " + ciphertext.length + " bytes.");
	System.out.println();

	System.out.println("Done.");
}
 
源代码8 项目: Sentinel   文件: NettyTransportClient.java
@Override
public ClusterResponse sendRequest(ClusterRequest request) throws Exception {
    if (!isReady()) {
        throw new SentinelClusterException(ClusterErrorMessages.CLIENT_NOT_READY);
    }
    if (!validRequest(request)) {
        throw new SentinelClusterException(ClusterErrorMessages.BAD_REQUEST);
    }
    int xid = getCurrentId();
    try {
        request.setId(xid);

        channel.writeAndFlush(request);

        ChannelPromise promise = channel.newPromise();
        TokenClientPromiseHolder.putPromise(xid, promise);

        if (!promise.await(ClusterClientConfigManager.getRequestTimeout())) {
            throw new SentinelClusterException(ClusterErrorMessages.REQUEST_TIME_OUT);
        }

        SimpleEntry<ChannelPromise, ClusterResponse> entry = TokenClientPromiseHolder.getEntry(xid);
        if (entry == null || entry.getValue() == null) {
            // Should not go through here.
            throw new SentinelClusterException(ClusterErrorMessages.UNEXPECTED_STATUS);
        }
        return entry.getValue();
    } finally {
        TokenClientPromiseHolder.remove(xid);
    }
}
 
源代码9 项目: freecol   文件: StringTemplate.java
/**
 * Try to find the replacement for a given key.
 *
 * @param key The key to look for.
 * @return The value found, otherwise null.
 */
public StringTemplate getReplacement(String key) {
    if (this.kv == null) return null;
    SimpleEntry<String,StringTemplate> val
        = find(this.kv, matchKeyEquals(key, SimpleEntry::getKey));
    return (val == null) ? null : val.getValue();
}
 
源代码10 项目: freecol   文件: StringTemplate.java
/**
 * Add a replacement.
 *
 * @param replacement The {@code StringTemplate} replacement to add.
 */
private void addReplacement(StringTemplate replacement) {
    if (this.kv == null) this.kv = new ArrayList<>();
    for (SimpleEntry<String,StringTemplate> e : this.kv) {
        if (e.getValue() == null) {
            e.setValue(replacement);
            return;
        }
    }
    addPair(null, replacement);
}
 
private void findParametersWrappedInLocalVariables() {
	for(StatementObject statement : nonMappedLeavesT2) {
		for(VariableDeclaration declaration : statement.getVariableDeclarations()) {
			AbstractExpression initializer = declaration.getInitializer();
			if(initializer != null) {
				for(String key : initializer.getCreationMap().keySet()) {
					List<ObjectCreation> creations = initializer.getCreationMap().get(key);
					for(ObjectCreation creation : creations) {
						for(String argument : creation.arguments) {
							SimpleEntry<VariableDeclaration, UMLOperation> v2 = getVariableDeclaration2(new Replacement("", argument, ReplacementType.VARIABLE_NAME));
							SimpleEntry<VariableDeclaration, UMLOperation> v1 = getVariableDeclaration1(new Replacement(declaration.getVariableName(), "", ReplacementType.VARIABLE_NAME));
							if(v2 != null && v1 != null) {
								Set<AbstractCodeMapping> references = VariableReferenceExtractor.findReferences(v1.getKey(), v2.getKey(), mappings);
								RenameVariableRefactoring ref = new RenameVariableRefactoring(v1.getKey(), v2.getKey(), v1.getValue(), v2.getValue(), references);
								if(!existsConflictingExtractVariableRefactoring(ref) && !existsConflictingMergeVariableRefactoring(ref) && !existsConflictingSplitVariableRefactoring(ref)) {
									variableRenames.add(ref);
									if(!v1.getKey().getType().equals(v2.getKey().getType()) || !v1.getKey().getType().equalsQualified(v2.getKey().getType())) {
										ChangeVariableTypeRefactoring refactoring = new ChangeVariableTypeRefactoring(v1.getKey(), v2.getKey(), v1.getValue(), v2.getValue(), references);
										refactoring.addRelatedRefactoring(ref);
										refactorings.add(refactoring);
									}
								}
							}
						}
					}
				}
			}
		}
	}
}
 
源代码12 项目: AdvancedRocketry   文件: ClassTransformer.java
private String getName(String key) {
	SimpleEntry<String, String> entry = entryMap.get(key);
	if(entry == null)
		return "";
	else
		if(obf)
			return entry.getValue();
		else
			return entry.getKey();
}
 
源代码13 项目: protect   文件: EciesEncryptionClient.java
public void decryptFile() throws BadPaddingException, IllegalBlockSizeException, ClassNotFoundException,
		IOException, ResourceUnavailableException, BelowThresholdException {

	// Print status
	System.out.println("-----------------------------------------------------------");
	System.out.println("Beginning decryption of file: " + this.inputFile);

	// Reading ciphertext
	System.out.print("Reading input file: " + this.inputFile + "... ");
	final byte[] ciphertextData = Files.readAllBytes(inputFile.toPath());
	System.out.println(" (done)");
	System.out.println("Read " + ciphertextData.length + " bytes of ciphertext.");
	System.out.println();

	// Extract public value from ciphertext
	System.out.print("Extracting public value from ciphertext: " + this.inputFile + "... ");
	final EcPoint publicValue = EciesEncryption.getPublicValue(ciphertextData);
	System.out.println(" (done)");
	System.out.println("Public Value is: " + publicValue);
	System.out.println();

	// Get public key and current epoch from the server
	System.out.print("Accessing public key for secret: " + this.secretName + "... ");
	final SimpleEntry<EcPoint, Long> publicKeyAndEpoch = this.getServerPublicKey(secretName);
	System.out.println(" (done)");
	final EcPoint publicKey = publicKeyAndEpoch.getKey();
	final long currentEpoch = publicKeyAndEpoch.getValue();
	System.out.println("Public key for secret:    " + publicKey);
	System.out.println("Current epoch for secret: " + currentEpoch);
	System.out.println();

	// Get public key and current epoch from the server
	System.out.print("Performing threshold exponentiation on public value using: " + this.secretName + "... ");
	final EcPoint exponentiationResult = this.exponentiatePoint(publicValue, currentEpoch);
	System.out.println(" (done)");
	System.out.println("Shared secret obtained:    " + exponentiationResult);
	System.out.println();

	// Perform ECIES decryption
	System.out.print("Performing ECIES decryption of file content... ");
	final byte[] plaintext = EciesEncryption.decrypt(ciphertextData, exponentiationResult);
	System.out.println(" (done)");
	System.out.println("Plaintext length " + plaintext.length + " bytes.");
	System.out.println();

	// Write plaintext to output file
	System.out.print("Writing plaintext to file: " + this.outputFile + "... ");
	Files.write(this.outputFile.toPath(), plaintext);
	System.out.println(" (done)");
	System.out.println("Wrote " + plaintext.length + " bytes.");
	System.out.println();

	System.out.println("Done.");

}
 
源代码14 项目: protect   文件: CertificateAuthorityCli.java
private static final void issueServerCertificates(final File caPath, final File keyPath, final File certPath)
		throws IOException, CertificateException, NoSuchAlgorithmException, InvalidKeySpecException {

	// Load configuration to get server addresses
	final File baseDirectory = new File(caPath.getParent());
	final File serverDirectory = new File(baseDirectory, "server");
	final File configFile = new File(serverDirectory, ServerApplication.CONFIG_FILENAME);
	final ServerConfiguration configuration = ServerConfigurationLoader.load(configFile);

	// For each ECDSA public key in the keyPath, create a certificate
	for (int keyIndex = 1; keyIndex <= configuration.getNumServers(); keyIndex++) {

		final File publicKeyFile = new File(keyPath, "public-" + keyIndex);

		if (!publicKeyFile.exists()) {
			System.out.println(publicKeyFile.getAbsoluteFile() + " not found, skipping...");
			continue;
		} else {
			// Load CA certificate (or generate a new one)
			final SimpleEntry<X509Certificate, PrivateKey> entry = loadOrGenerateCa(caPath, "server-" + keyIndex);
			System.out.println();

			final String issuerDn = entry.getKey().getIssuerDN().getName();
			final PrivateKey caKey = entry.getValue();

			try (final PemReader reader = new PemReader(new FileReader(publicKeyFile.getAbsolutePath()))) {
				// Load public key from file
				final PublicKey publicKey = ((PublicKey) Pem.readObject(reader.readPemObject()));
				System.out.println("Read: " + publicKeyFile.getAbsolutePath());

				// Generate certificate
				final String subjectDn = "O=Threshold, OU=Security, CN=server-" + keyIndex;

				System.out.println("  Issued certificate for: " + subjectDn);

				final InetSocketAddress serverAddress = configuration.getServerAddresses().get(keyIndex - 1);
				final String serverIp = serverAddress.getAddress().toString().split("/")[1];
				final String serverHost = serverAddress.getAddress().getCanonicalHostName();
				final X509Certificate certificate = CertificateGeneration.generateCertificate(subjectDn, serverIp,
						serverHost, publicKey, 730, false, issuerDn, caKey);
				System.out.println("  Alternative names: IP:" + serverIp + ", DNS:" + serverHost);

				// Write certificate file
				final File certificateFile = new File(certPath, "cert-" + keyIndex);
				Pem.storeCertificateToFile(certificate, certificateFile);
				System.out.println("Wrote: " + certificateFile.getAbsolutePath());
				System.out.println();

			}
		}
	}
}
 
源代码15 项目: protect   文件: CertificateAuthorityCli.java
private static final void issueClientCertificates(final File caPath, final File keyPath, final File certPath)
		throws NoSuchAlgorithmException, CertificateException, KeyStoreException, IOException,
		InvalidKeySpecException {

	// Load configuration to get server addresses
	final File baseDirectory = new File(caPath.getParent());
	final File serverDirectory = new File(baseDirectory, "server");
	final File configFile = new File(serverDirectory, ServerApplication.AUTH_DIRECTORY);

	// Load Client Access Controls
	final AccessEnforcement accessEnforcement = ClientPermissionLoader.loadIniFile(configFile);

	// Load or generate client CA Certificate
	final SimpleEntry<X509Certificate, PrivateKey> clientCaEntry = loadOrGenerateCa(caPath, "clients");
	final String issuerDnClient = clientCaEntry.getKey().getIssuerDN().getName();
	final PrivateKey caKeyClient = clientCaEntry.getValue();
	System.out.println();

	// For each ECDSA public key in the keyPath, create a certificate
	for (final String username : accessEnforcement.getKnownUsers()) {

		final File publicKeyFile = new File(keyPath, "public-" + username);

		if (!publicKeyFile.exists()) {
			System.out.println(publicKeyFile.getAbsoluteFile() + " not found, skipping...");
			continue;
		} else {

			try (final PemReader reader = new PemReader(new FileReader(publicKeyFile.getAbsolutePath()))) {

				// Load client public key from file
				final PublicKey publicKey = ((PublicKey) Pem.readObject(reader.readPemObject()));
				System.out.println("Read: " + publicKeyFile.getAbsolutePath());

				// Generate certificate
				final String subjectDn = "O=Threshold, OU=Security, CN=client-" + username;

				final X509Certificate certificate = CertificateGeneration.generateCertificate(subjectDn, null, null,
						publicKey, 730, false, issuerDnClient, caKeyClient);

				System.out.println("  Issued certificate for: " + subjectDn);

				// Load entity private key from file
				final File privateKeyFile = new File(keyPath, "private-" + username);
				try (final PemReader keyReader = new PemReader(new FileReader(privateKeyFile.getAbsolutePath()))) {
					final PrivateKey privateKey = ((PrivateKey) Pem.readObject(keyReader.readPemObject()));

					// Write PKCS12 file for import to browsers
					final File pfxFile = new File(keyPath, "bundle-private-" + username + ".p12");
					CertificateGeneration.createP12File(pfxFile, "password".toCharArray(), certificate, privateKey);
					System.out.println("Wrote: " + pfxFile.getAbsolutePath());
				}

				// Write certificate file
				final File certificateFile = new File(certPath, "cert-" + username);
				Pem.storeCertificateToFile(certificate, certificateFile);
				System.out.println("Wrote: " + certificateFile.getAbsolutePath());
				System.out.println();
			}
		}
	}
}
 
源代码16 项目: protect   文件: EciesEncryptionClient.java
public void decryptFile() throws BadPaddingException, IllegalBlockSizeException, ClassNotFoundException,
		IOException, ResourceUnavailableException, BelowThresholdException {

	// Print status
	System.out.println("-----------------------------------------------------------");
	System.out.println("Beginning decryption of file: " + this.inputFile);

	// Reading ciphertext
	System.out.print("Reading input file: " + this.inputFile + "... ");
	final byte[] ciphertextData = Files.readAllBytes(inputFile.toPath());
	System.out.println(" (done)");
	System.out.println("Read " + ciphertextData.length + " bytes of ciphertext.");
	System.out.println();

	// Extract public value from ciphertext
	System.out.print("Extracting public value from ciphertext: " + this.inputFile + "... ");
	final EcPoint publicValue = EciesEncryption.getPublicValue(ciphertextData);
	System.out.println(" (done)");
	System.out.println("Public Value is: " + publicValue);
	System.out.println();

	// Get public key and current epoch from the server
	System.out.print("Accessing public key for secret: " + this.secretName + "... ");
	final SimpleEntry<List<EcPoint>, Long> shareVerificationKeysAndEpoch = this.getServerVerificationKeys(secretName);
	System.out.println(" (done)");
	final EcPoint publicKey = shareVerificationKeysAndEpoch.getKey().get(0);
	final long currentEpoch = shareVerificationKeysAndEpoch.getValue();
	System.out.println("Public key for secret:    " + publicKey);
	System.out.println("Current epoch for secret: " + currentEpoch);
	System.out.println();

	// Get public key and current epoch from the server
	System.out.print("Performing threshold exponentiation on public value using: " + this.secretName + "... ");
	final EcPoint exponentiationResult = this.exponentiatePoint(publicValue, currentEpoch);
	System.out.println(" (done)");
	System.out.println("Shared secret obtained:    " + exponentiationResult);
	System.out.println();

	// Perform ECIES decryption
	System.out.print("Performing ECIES decryption of file content... ");
	final byte[] plaintext = EciesEncryption.decrypt(ciphertextData, exponentiationResult);
	System.out.println(" (done)");
	System.out.println("Plaintext length " + plaintext.length + " bytes.");
	System.out.println();

	// Write plaintext to output file
	System.out.print("Writing plaintext to file: " + this.outputFile + "... ");
	Files.write(this.outputFile.toPath(), plaintext);
	System.out.println(" (done)");
	System.out.println("Wrote " + plaintext.length + " bytes.");
	System.out.println();

	System.out.println("Done.");

}
 
源代码17 项目: xtext-eclipse   文件: AnnotatedTextToString.java
@Override
public String toString() {
	String contents = getContents();
	regions.sort(Comparator.comparing((region) -> region.start));

	List<SimpleEntry<Integer, CommentedRegion>> sorted = new ArrayList<>();
	for (int index = 0; index < regions.size(); index++) {
		sorted.add(new SimpleEntry<>(index, regions.get(index)));
	}

	List<SimpleEntry<Integer, String>> locations = new ArrayList<>();
	sorted.stream().forEach(s -> {
		locations.add(new SimpleEntry<>(s.getValue().start, "<" + s.getKey() + "<"));
		locations.add(new SimpleEntry<>(s.getValue().end, ">" + s.getKey() + ">"));
	});
	locations.sort(Comparator.comparing(SimpleEntry::getKey));

	StringBuilder result = new StringBuilder();
	int lastOffset = 0;
	for (int i = 0; i < locations.size(); i++) {
		SimpleEntry<Integer, String> location = locations.get(i);
		Integer offset = location.getKey();
		String comment = location.getValue();
		result.append(contents.substring(lastOffset, offset));
		result.append(comment);
		lastOffset = offset;
	}

	result.append(contents.substring(lastOffset, contents.length()));
	String[] resultsArray = result.toString().replace("\t", "    ").split("\r?\n");
	int maxLineLength = Arrays.stream(resultsArray).map(r -> r.length()).reduce(Integer::max).get();

	if (!result.substring(result.length() - 1, result.length()).equals("\n")) {
		result.append("\n");
	}

	result.append(Strings.repeat("-", maxLineLength));

	if (sorted.isEmpty()) {
		for (String message : emptyMessages) {
			result.append("\n");
			result.append(message);
		}
	} else {
		for (SimpleEntry<Integer, CommentedRegion> c : sorted) {
			result.append("\n");
			result.append(c.getKey());
			result.append(": ");
			result.append(c.getValue().text);
		}
	}
	return result.toString();
}
 
@Override
protected void loadModel(URL directoryURL, String parms) {
  File directory = null;
  if("file".equals(directoryURL.getProtocol())) {
    directory = Files.fileFromURL(directoryURL);
  } else {
    throw new GateRuntimeException("The dataDirectory for WekaWrapper must be a file: URL not "+directoryURL);
  }
  ArrayList<String> finalCommand = new ArrayList<>();
  // we need the corpus representation here! Normally this is done from loadEngine and after
  // load model, but we do it here. The load crm method only loads anything if it is still
  // null, so we will do this only once anyway.
  loadAndSetCorpusRepresentation(directoryURL);
  CorpusRepresentationMalletTarget data = (CorpusRepresentationMalletTarget)corpusRepresentation;
  SimpleEntry<String,Integer> modeAndNrC = findOutMode(data);
  String mode = modeAndNrC.getKey();
  Integer nrClasses = modeAndNrC.getValue();
  // Instead of loading a model, this establishes a connection with the 
  // external wrapper process. 
  
  File commandFile = findWrapperCommand(directory, true);
  String modelFileName = new File(directory,MODEL_BASENAME).getAbsolutePath();
  finalCommand.add(commandFile.getAbsolutePath());
  finalCommand.add(modelFileName);
  finalCommand.add(mode);
  finalCommand.add(nrClasses.toString());
  // if we have a shell command prepend that, and if we have shell parms too, include them
  if(shellcmd != null) {
    finalCommand.add(0,shellcmd);
    if(shellparms != null) {
      String[] sps = shellparms.trim().split("\\s+");
      int i=0; for(String sp : sps) { finalCommand.add(++i,sp); }
    }
  }
  //System.err.println("Running: "+finalCommand);
  // Create a fake Model jsut to make LF_Apply... happy which checks if this is null
  model = MODEL_INSTANCE;
  Map<String,String> env = new HashMap<>();
  env.put(ENV_WRAPPER_HOME, wrapperhome);
  process = Process4JsonStream.create(directory,env,finalCommand);
}
 
@Override
public void trainModel(File dataDirectory, String instanceType, String parms) {
  ArrayList<String> finalCommand = new ArrayList<>();
  CorpusRepresentationMalletTarget data = (CorpusRepresentationMalletTarget)corpusRepresentation;
  SimpleEntry<String,Integer> modeAndNrC = findOutMode(data);
  String mode = modeAndNrC.getKey();
  Integer nrClasses = modeAndNrC.getValue();
  
  // invoke wrapper for training
  File commandFile = findWrapperCommand(dataDirectory, false);
  // Export the data 
  // Note: any scaling was already done in the PR before calling this method!
  // find out if we train classification or regression
  // TODO: NOTE: not sure if classification/regression matters here as long as
  // the actual exporter class does the right thing based on the corpus representation!
  // TODO: we have to choose the correct target type here!!!
  // NOTE: the last argument here are the parameters for the exporter method.
  // we use the CSV exporter with parameters:
  // -t: twofiles, export indep and dep into separate files
  // -n: noheaders, do not add a header row
  
  // Exporter.export(corpusRepresentation, 
  //        Exporter.CSV_CL_MR, dataDirectory, instanceType, "-t -n");
  corpusExporter.export();
  String dataFileName = dataDirectory.getAbsolutePath()+File.separator;
  String modelFileName = new File(dataDirectory, MODEL_BASENAME).getAbsolutePath();
  finalCommand.add(commandFile.getAbsolutePath());
  finalCommand.add(dataFileName);
  finalCommand.add(modelFileName);
  finalCommand.add(mode);
  finalCommand.add(nrClasses.toString());
  if(!parms.trim().isEmpty()) {
    String[] tmp = parms.split("\\s+",-1);
    finalCommand.addAll(Arrays.asList(tmp));
  }
  // if we have a shell command prepend that, and if we have shell parms too, include them
  if(shellcmd != null) {
    finalCommand.add(0,shellcmd);
    if(shellparms != null) {
      String[] sps = shellparms.trim().split("\\s+");
      int i=0; for(String sp : sps) { finalCommand.add(++i,sp); }
    }
  }
  //System.err.println("Running: ");
  //for(int i=0; i<finalCommand.size();i++) {
  //  System.err.println(i+": >"+finalCommand.get(i)+"<");
  //}
  // Create a fake Model jsut to make LF_Apply... happy which checks if this is null
  model = MODEL_INSTANCE;
  Map<String,String> env = new HashMap<>();
  env.put(ENV_WRAPPER_HOME,wrapperhome);
  process = ProcessSimple.create(dataDirectory,env,finalCommand);
  process.waitFor();
  updateInfo();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  info.modelWhenTrained = sdf.format(new Date());    
  info.algorithmParameters = parms;
  info.save(dataDirectory);    
  featureInfo.save(dataDirectory);
  
}
 
源代码20 项目: SPADE   文件: Series.java
public V getBestMatch(T t){
	if(t == null){
		logger.log(Level.WARNING, "Key to look up cannot be null.");
	}else{
		if(!sorted){
			sorted = true;
			Collections.sort(series, new Comparator<SimpleEntry<T,V>>(){
				@Override
				public int compare(SimpleEntry<T, V> o1, SimpleEntry<T, V> o2){
					if(o1 == null && o2 == null){
						return 0;
					}else if(o1 == null && o2 != null){
						return -1;
					}else if(o1 != null && o2 == null){
						return 1;
					}else{
						T t1 = o1.getKey();
						T t2 = o2.getKey();
						if(t1 == null && t2 == null){
							return 0;
						}else if(t1 == null && t2 != null){
							return -1;
						}else if(t1 != null && t2 == null){
							return 1;
						}else{
							return t1.compareTo(t2);
						}
					}
				}
			});
		}
		// Looking up in reverse because we want the last associated value for that key.
		for(int a = series.size() - 1; a > -1; a--){
			SimpleEntry<T, V> entry = series.get(a);
			T time = entry.getKey();
			if(t.compareTo(time) >= 0){
				return entry.getValue();
			}
		}
	}
	return null; // none matched
}