Search in sources :

Example 1 with ForceFieldBoolean

use of ffx.potential.parameters.ForceField.ForceFieldBoolean in project ffx by mjschnie.

the class ForceFieldFilter method parseKeyword.

private boolean parseKeyword(String[] tokens) {
    String keyword = toEnumForm(tokens[0]);
    try {
        // Parse Keywords with a String value.
        ForceFieldString ffString = ForceFieldString.valueOf(keyword);
        int len = tokens.length;
        if (len == 1) {
            forceField.addForceFieldString(ffString, null);
        } else if (len == 2) {
            forceField.addForceFieldString(ffString, tokens[1]);
        } else {
            StringBuilder stringBuilder = new StringBuilder(tokens[1]);
            for (int i = 2; i < len; i++) {
                stringBuilder.append(" ");
                stringBuilder.append(tokens[i]);
            }
            forceField.addForceFieldString(ffString, stringBuilder.toString());
        }
    } catch (Exception e) {
        try {
            // Parse Keywords with a Double value.
            ForceFieldDouble ffDouble = ForceFieldDouble.valueOf(keyword);
            double value = Double.parseDouble(tokens[1]);
            forceField.addForceFieldDouble(ffDouble, value);
        } catch (Exception e2) {
            try {
                // Parse Keywords with an Integer value.
                ForceFieldInteger ffInteger = ForceFieldInteger.valueOf(keyword);
                int value = Integer.parseInt(tokens[1]);
                forceField.addForceFieldInteger(ffInteger, value);
            } catch (Exception e3) {
                try {
                    // Parse Keywords with a Boolean value.
                    ForceFieldBoolean ffBoolean = ForceFieldBoolean.valueOf(keyword);
                    boolean value = true;
                    if (tokens.length > 1 && tokens[0].toUpperCase().endsWith("TERM")) {
                        /**
                         * Handle the token "ONLY" specially to shut off all
                         * other terms.
                         */
                        if (tokens[1].equalsIgnoreCase("ONLY")) {
                            for (ForceFieldBoolean term : ForceFieldBoolean.values()) {
                                if (term.toString().toUpperCase().endsWith("TERM")) {
                                    forceField.addForceFieldBoolean(term, false);
                                }
                            }
                        } else if (tokens[1].equalsIgnoreCase("NONE")) {
                            /**
                             * Legacy support for the "NONE" token.
                             */
                            value = false;
                        } else {
                            value = Boolean.parseBoolean(tokens[1]);
                        }
                    }
                    forceField.addForceFieldBoolean(ffBoolean, value);
                    forceField.log(keyword);
                } catch (Exception e4) {
                    return false;
                }
            }
        }
    }
    return true;
}
Also used : ForceFieldInteger(ffx.potential.parameters.ForceField.ForceFieldInteger) ForceFieldBoolean(ffx.potential.parameters.ForceField.ForceFieldBoolean) ForceFieldString(ffx.potential.parameters.ForceField.ForceFieldString) ForceFieldString(ffx.potential.parameters.ForceField.ForceFieldString) ForceFieldDouble(ffx.potential.parameters.ForceField.ForceFieldDouble) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) ConfigurationException(org.apache.commons.configuration.ConfigurationException)

Aggregations

ForceFieldBoolean (ffx.potential.parameters.ForceField.ForceFieldBoolean)1 ForceFieldDouble (ffx.potential.parameters.ForceField.ForceFieldDouble)1 ForceFieldInteger (ffx.potential.parameters.ForceField.ForceFieldInteger)1 ForceFieldString (ffx.potential.parameters.ForceField.ForceFieldString)1 FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 ConfigurationException (org.apache.commons.configuration.ConfigurationException)1