package org.javabuilders.handler.type; import java.util.List; import org.javabuilders.BuildException; import org.javabuilders.BuildProcess; import org.javabuilders.Node; import org.javabuilders.handler.ITypeAsValueHandler; /** * Handles integer array, e.g. weight=(50,20,30) * @author Jacek Furmankiewicz */ public class IntegerArrayAsValueHandler implements ITypeAsValueHandler<Integer[]> { private static final IntegerArrayAsValueHandler singleton = new IntegerArrayAsValueHandler(); public static final String REGEX_MATCHER = "\\[\\s*(([0-9]+\\s*)|([0-9]+\\s*,\\s*[0-9]+\\s*)+)\\s*\\]";; /** * @return Singleton */ public static IntegerArrayAsValueHandler getInstance() {return singleton;} private IntegerArrayAsValueHandler() {} public String getInputValueSample() { return "weights=(30,40,30)"; } /* (non-Javadoc) * @see org.javabuilders.handler.ITypeAsValueHandler#getRegex() */ public String getRegex() { return REGEX_MATCHER; } /* (non-Javadoc) * @see org.javabuilders.handler.ITypeAsValueHandler#getValue(org.javabuilders.BuildProcess, org.javabuilders.Node, java.lang.String, java.lang.Object) */ @SuppressWarnings("unchecked") public Integer[] getValue(BuildProcess process, Node node, String key, Object inputValue) throws BuildException { List<Long> values = (List<Long>)inputValue; Integer[] returnValue = new Integer[values.size()]; for(int i = 0; i < values.size();i++) { returnValue[i] = values.get(i).intValue(); } return returnValue; } /* (non-Javadoc) * @see org.javabuilders.IApplicable#getApplicableClass() */ public Class<Integer[]> getApplicableClass() { return Integer[].class; } }