public static Object getDefaultValue()

in uimafit-core/src/main/java/org/apache/uima/fit/factory/ConfigurationParameterFactory.java [97:172]


  public static Object getDefaultValue(Field field) {
    if (isConfigurationParameterField(field)) {
      org.apache.uima.fit.descriptor.ConfigurationParameter annotation = ReflectionUtil
              .getAnnotation(field, org.apache.uima.fit.descriptor.ConfigurationParameter.class);

      String[] stringValue = annotation.defaultValue();
      if (stringValue.length == 1 && stringValue[0]
              .equals(org.apache.uima.fit.descriptor.ConfigurationParameter.NO_DEFAULT_VALUE)) {
        return null;
      }

      String valueType = getConfigurationParameterType(field);
      boolean isMultiValued = isMultiValued(field);

      if (!isMultiValued) {
        if (ConfigurationParameter.TYPE_BOOLEAN.equals(valueType)) {
          return Boolean.parseBoolean(stringValue[0]);
        } else if (ConfigurationParameter.TYPE_FLOAT.equals(valueType)) {
          return Float.parseFloat(stringValue[0]);
        } else if (ConfigurationParameter.TYPE_DOUBLE.equals(valueType)) {
          return Double.parseDouble(stringValue[0]);
        } else if (ConfigurationParameter.TYPE_INTEGER.equals(valueType)) {
          return Integer.parseInt(stringValue[0]);
        } else if (ConfigurationParameter.TYPE_LONG.equals(valueType)) {
          return Long.parseLong(stringValue[0]);
        } else if (ConfigurationParameter.TYPE_STRING.equals(valueType)) {
          return stringValue[0];
        }
        throw new UIMA_IllegalArgumentException(
                UIMA_IllegalArgumentException.METADATA_ATTRIBUTE_TYPE_MISMATCH,
                new Object[] { valueType, "type" });
      } else {
        if (ConfigurationParameter.TYPE_BOOLEAN.equals(valueType)) {
          Boolean[] returnValues = new Boolean[stringValue.length];
          for (int i = 0; i < stringValue.length; i++) {
            returnValues[i] = Boolean.parseBoolean(stringValue[i]);
          }
          return returnValues;
        } else if (ConfigurationParameter.TYPE_FLOAT.equals(valueType)) {
          Float[] returnValues = new Float[stringValue.length];
          for (int i = 0; i < stringValue.length; i++) {
            returnValues[i] = Float.parseFloat(stringValue[i]);
          }
          return returnValues;
        } else if (ConfigurationParameter.TYPE_DOUBLE.equals(valueType)) {
          Double[] returnValues = new Double[stringValue.length];
          for (int i = 0; i < stringValue.length; i++) {
            returnValues[i] = Double.parseDouble(stringValue[i]);
          }
          return returnValues;
        } else if (ConfigurationParameter.TYPE_INTEGER.equals(valueType)) {
          Integer[] returnValues = new Integer[stringValue.length];
          for (int i = 0; i < stringValue.length; i++) {
            returnValues[i] = Integer.parseInt(stringValue[i]);
          }
          return returnValues;
        } else if (ConfigurationParameter.TYPE_LONG.equals(valueType)) {
          Long[] returnValues = new Long[stringValue.length];
          for (int i = 0; i < stringValue.length; i++) {
            returnValues[i] = Long.parseLong(stringValue[i]);
          }
          return returnValues;
        } else if (ConfigurationParameter.TYPE_STRING.equals(valueType)) {
          return stringValue;
        }
        throw new UIMA_IllegalArgumentException(
                UIMA_IllegalArgumentException.METADATA_ATTRIBUTE_TYPE_MISMATCH,
                new Object[] { valueType, "type" });

      }

    } else {
      throw new IllegalArgumentException("field is not annotated with annotation of type "
              + org.apache.uima.fit.descriptor.ConfigurationParameter.class.getName());
    }
  }