List of usage examples for org.apache.commons.lang3.math NumberUtils createNumber
public static Number createNumber(final String str) throws NumberFormatException
Turns a string value into a java.lang.Number.
If the string starts with 0x or -0x (lower or upper case) or # or -# , it will be interpreted as a hexadecimal Integer - or Long, if the number of digits after the prefix is more than 8 - or BigInteger if there are more than 16 digits.
From source file:org.briljantframework.data.resolver.Resolve.java
private static Resolver<Integer> initializeIntegerResolver() { Resolver<Integer> resolver = new Resolver<>(Integer.class); resolver.put(Number.class, Number::intValue); resolver.put(Double.class, Number::intValue); resolver.put(Double.TYPE, Number::intValue); resolver.put(Float.class, Number::intValue); resolver.put(Float.TYPE, Number::intValue); resolver.put(Long.class, Number::intValue); resolver.put(Long.TYPE, Number::intValue); resolver.put(Integer.class, Number::intValue); resolver.put(Integer.TYPE, Number::intValue); resolver.put(Short.class, Number::intValue); resolver.put(Short.TYPE, Number::intValue); resolver.put(Byte.class, Number::intValue); resolver.put(Byte.TYPE, Number::intValue); resolver.put(String.class, s -> { try {//from w w w . jav a 2 s. c o m return NumberUtils.createNumber(s).intValue(); } catch (Exception e) { return null; } }); return resolver; }
From source file:org.flockdata.transform.ExpressionHelper.java
public static Object getValue(Object value, ColumnDefinition colDef) { // context.setVariable("colDef",colDef); if (value == null || value.equals("null")) return null; else if (NumberUtils.isNumber(value.toString())) { if (colDef != null && colDef.getDataType() != null && colDef.getDataType().equalsIgnoreCase("string")) return String.valueOf(value); else//from w ww .jav a 2 s . co m return NumberUtils.createNumber(value.toString()); } else { return value.toString().trim(); } }
From source file:org.flockdata.transform.TransformationHelper.java
static String getDataType(Object value, String column) { if (value == null) return null; Boolean tryAsNumber = true;//from ww w.j a va2s . co m Boolean tryAsDate = true; String dataType = null; // Code values are always strings if (column != null && (column.equals("code") || column.equals("name"))) { dataType = "string"; tryAsNumber = false; tryAsDate = false; } if (tryAsDate) { if (isDate(value)) { dataType = "date"; tryAsNumber = false; } } if (value.toString().startsWith("0x")) // Treating Hex as String return "string"; if (tryAsNumber) { if (NumberUtils.isNumber(value.toString())) { value = NumberUtils.createNumber(value.toString()); if (value != null) dataType = "number"; } else dataType = "string"; } return dataType; }
From source file:org.flockdata.transform.TransformationHelper.java
public static Object transformValue(Object value, String column, ColumnDefinition colDef) { if (value == null) return null; Boolean tryAsNumber = true;/*w w w . j av a 2 s . c om*/ String dataType = null; if (colDef != null) { dataType = colDef.getDataType(); if (dataType == null && evaluate(colDef.isTag())) { dataType = "string"; tryAsNumber = false; } } // Code values are always strings if (column != null && (column.equals("code") || column.equals("name"))) { dataType = "string"; tryAsNumber = false; } if (value.toString().startsWith("0x")) // Treating Hex as String return value.toString(); if (dataType != null) { if (dataType.equalsIgnoreCase("string") || dataType.equalsIgnoreCase("date")) tryAsNumber = false; else if (dataType.equalsIgnoreCase("number")) { tryAsNumber = true; // User wants us to coerce this to a number // To do so requires tidying up a few common formatting issues value = removeLeadingZeros(value.toString()); value = removeSeparator(value.toString());// Sets an empty string to null } } if (tryAsNumber) { if (value != null && NumberUtils.isNumber(value.toString())) { if (dataType != null && dataType.equals("double")) value = value + "d"; value = NumberUtils.createNumber(value.toString()); } else if (dataType != null && dataType.equalsIgnoreCase("number")) { // Force to a number as it was not detected value = NumberUtils.createNumber(colDef == null ? "0" : colDef.getValueOnError()); } } return value; }
From source file:org.gvnix.web.datatables.util.QuerydslUtils.java
/** * Return an expression for {@code entityPath.fieldName} (for Numerics) with * the {@code operator} or "equal" by default. * <p/>// w w w. j av a 2 s .co m * Expr: {@code entityPath.fieldName eq searchObj} * * @param entityPath * @param fieldName * @param searchObj * @param operator * @param fieldType * @return */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> BooleanExpression createNumericExpression(PathBuilder<T> entityPath, String fieldName, Object searchObj, String operator, Class<?> fieldType) { NumberPath numberExpression = null; if (BigDecimal.class.isAssignableFrom(fieldType)) { numberExpression = entityPath.getNumber(fieldName, (Class<BigDecimal>) fieldType); } else if (BigInteger.class.isAssignableFrom(fieldType)) { numberExpression = entityPath.getNumber(fieldName, (Class<BigInteger>) fieldType); } else if (Byte.class.isAssignableFrom(fieldType)) { numberExpression = entityPath.getNumber(fieldName, (Class<Byte>) fieldType); } else if (Double.class.isAssignableFrom(fieldType) || double.class == fieldType) { numberExpression = entityPath.getNumber(fieldName, (Class<Double>) fieldType); } else if (Float.class.isAssignableFrom(fieldType) || float.class == fieldType) { numberExpression = entityPath.getNumber(fieldName, (Class<Float>) fieldType); } else if (Integer.class.isAssignableFrom(fieldType) || int.class == fieldType) { numberExpression = entityPath.getNumber(fieldName, (Class<Integer>) fieldType); } else if (Long.class.isAssignableFrom(fieldType) || long.class == fieldType) { numberExpression = entityPath.getNumber(fieldName, (Class<Long>) fieldType); } else if (Short.class.isAssignableFrom(fieldType) || short.class == fieldType) { numberExpression = entityPath.getNumber(fieldName, (Class<Short>) fieldType); } if (numberExpression != null) { Number value = NumberUtils.createNumber((String) searchObj); if (StringUtils.equalsIgnoreCase(operator, OPERATOR_GOE)) { return numberExpression.goe(value); } else if (StringUtils.equalsIgnoreCase(operator, "gt")) { return numberExpression.gt(value); } else if (StringUtils.equalsIgnoreCase(operator, "like")) { return numberExpression.like((String) searchObj); } else if (StringUtils.equalsIgnoreCase(operator, OPERATOR_LOE)) { return numberExpression.loe(value); } else if (StringUtils.equalsIgnoreCase(operator, "lt")) { return numberExpression.lt(value); } } return entityPath.get(fieldName).eq(searchObj); }
From source file:org.krobot.command.Command.java
/** * Call the command//from w w w . j ava 2 s . c o m * * @param context The context of the command * @param args The given args * * @throws Exception If the command handler threw one */ public void call(CommandContext context, List<String> args) throws Exception { LOGGER.debug("Parsing command call for -> " + this.label); if (args.size() > 0) { for (Command sub : subs) { if (sub.getLabel().equals(args.get(0))) { if (executeMiddlewares(context, null)) { LOGGER.debug("Sub command detected -> " + sub.getLabel()); List<String> subArgs = args.subList(1, args.size()); try { sub.call(context, subArgs); } catch (Throwable t) { exHandler.handle(t, sub, subArgs, context); } } return; } } } Stream.of(botPermissions).forEach(context::require); Stream.of(callerPermissions).forEach(context::requireCaller); Map<String, SuppliedArgument> map = new HashMap<>(); // TODO: 2.5.0 Better argument parsing than this shit for (int i = 0, i2 = 0; i < arguments.length; i++) { Exception ex = null; if (i2 > args.size() - 1) { ex = new BadSyntaxException("Missing some args"); } else if (!arguments[i].isList()) { ArgumentType type = arguments[i].getType(); String[] choices = arguments[i].getChoices(); String arg = args.get(i2); if (choices != null && !ArrayUtils.contains(choices, arg)) { ex = new BadSyntaxException("Supplied arg '" + arg + "' isn't one of the possible choices : " + ArrayUtils.toString(choices) + " (for arg '" + arguments[i].getKey() + "')"); } if (type == ArgumentType.NUMBER && !NumberUtils.isCreatable(arg)) { ex = new BadSyntaxException( "Supplied arg '" + arg + "' isn't a number (for arg '" + arguments[i].getKey() + "')"); } else if (type == ArgumentType.USER && UserUtils.resolve(context.getGuild(), arg) == null) { ex = new UserNotFoundException(arg); } } if (ex != null) { if (arguments[i].isOptional()) { if (i2 > args.size() - 1) { break; } else { i--; } } else { throw ex; } } else { SuppliedArgument argument; if (arguments[i].isList()) { List<String> values = args.subList(i2, args.size()); ArgumentType type = arguments[i].getType(); List list; switch (type) { case USER: list = new ArrayList<User>(); break; case NUMBER: list = new ArrayList<Integer>(); break; case STRING: list = new ArrayList<String>(); break; default: list = null; } for (String value : values) { switch (type) { case USER: User user = UserUtils.resolve(context.getGuild(), value); if (user == null) { throw new UserNotFoundException(value); } list.add(user); break; case NUMBER: if (!NumberUtils.isCreatable(value)) { throw new BadSyntaxException("Supplied arg '" + value + "' (from list arg '" + arguments[i].getKey() + "') isn't a number"); } Number number = NumberUtils.createNumber(value); if (!(number instanceof Integer)) { throw new BadSyntaxException("Supplied arg '" + value + "' (from list arg '" + arguments[i].getKey() + "') is too big"); } list.add((Integer) number); break; case STRING: list.add(value); break; } } argument = new SuppliedArgument(list, type); } else { String value = args.get(i2); switch (arguments[i].getType()) { case USER: argument = new SuppliedArgument(UserUtils.resolve(context.getGuild(), value)); break; case NUMBER: Number number = NumberUtils.createNumber(value); if (!(number instanceof Integer)) { throw new BadSyntaxException("Supplied arg '" + value + "' (from list arg '" + arguments[i].getKey() + "') is too big"); } argument = new SuppliedArgument((Integer) number); break; case STRING: argument = new SuppliedArgument(value); break; default: argument = null; } } map.put(arguments[i].getKey(), argument); } i2++; } StringBuilder label = new StringBuilder(this.getLabel()); Command parent = this.getParent(); while (parent != null) { label.insert(0, parent.getLabel() + " > "); parent = parent.getParent(); } LOGGER.debug("Handling call of -> " + label + " | with args -> " + map); if (executeMiddlewares(context, map)) { handler.handle(context, map); } if (context.getGuild().getMember(jda.getSelfUser()).hasPermission(Permission.MESSAGE_MANAGE)) { context.getMessage().delete().queue(); } }
From source file:org.mongojx.fluent.core.MongoJxParser.java
public static QueryTuple bind(String filter, Object... parameters) { ParsingEvent state = null;//from w w w.j a va2s.c o m int keyStartIndex = 0; int keyStopIndex = 0; int valueStartIndex = 0; int parameterIndex = 0; Document finalDocument = new Document(); Document document = finalDocument; int depth = 0; int arrays = 1; List<Document> documents = new ArrayList(); for (int i = 0; i < filter.length(); i++) { char character = filter.charAt(i); if (isJsonObjectStarting(character)) { if (state == KEY_VALUE_DELIMITER) { Document nestedDocument = new Document(); document.put(filter.substring(keyStartIndex, keyStopIndex), nestedDocument); document = nestedDocument; } else if (state == IN_ARRAY_AND_SEPARATOR) { document = new Document(); finalDocument = document; } state = START_OBJECT; keyStartIndex = i + 1; depth++; } else if (isDoubleStringCharacter(character)) { if (isDoubleStringEnding(state)) { state = END_DOUBLE_QUOTE_STRING; document.put(filter.substring(keyStartIndex, keyStopIndex), filter.substring(valueStartIndex, i)); } else { valueStartIndex = i + 1; state = START_DOUBLE_QUOTE_STRING; } } else if (isSingleStringCharacter(character)) { if (isSingleStringEnding(state)) { state = END_SINGLE_QUOTE_STRING; } else if (isSingleStringStarting(state)) { keyStartIndex = i; state = START_SINGLE_QUOTE_STRING; } } else if (isJsonObjectEnding(character)) { depth--; if (depth == 0) { documents.add(finalDocument); state = END_OF_IN_ARRAY_OBJECT; } } else if (isArrayStarting(character)) { arrays--; if (arrays == 0) { return new QueryTuple(i + 1, documents); } } else if (isArrayEnding(character)) { QueryTuple queryTuple = bind(filter.substring(i + 1), parameters); document.put(filter.substring(keyStartIndex, keyStopIndex), queryTuple.getDocuments()); i = i + queryTuple.getIndex(); } else if (isKeyValueSeparator(character)) { if (state != KEY_END) { keyStopIndex = i; } document.put(filter.substring(keyStartIndex, keyStopIndex), ""); state = KEY_VALUE_DELIMITER; } else if (isParameter(character)) { state = PARAMETER; document.put(filter.substring(keyStartIndex, keyStopIndex), parameters[parameterIndex]); parameterIndex++; } else if (isSeparator(character)) { keyStartIndex = i + 1; if (state == END_OF_IN_ARRAY_OBJECT) { state = IN_ARRAY_AND_SEPARATOR; } else { state = AND_SEPARATOR; } } else if (Character.isWhitespace(character)) { if (state == AND_SEPARATOR) { keyStartIndex = i + 1; } else if (state == START_OBJECT) { keyStartIndex = i + 1; } else if (state == START_INLINE_NUMERIC_VALUE) { state = END_INLINE_NUMERIC_VALUE; String value = filter.substring(valueStartIndex, i); document.put(filter.substring(keyStartIndex, keyStopIndex), NumberUtils.createNumber(value)); } else if (state == KEY_START) { keyStopIndex = i; state = KEY_END; } } else if (Character.isDigit(character) && state == KEY_VALUE_DELIMITER) { state = START_INLINE_NUMERIC_VALUE; valueStartIndex = i; } else if (Character.isAlphabetic(character) && (state == AND_SEPARATOR || state == START_OBJECT)) { state = KEY_START; } } return new QueryTuple(filter.length(), documents); }
From source file:org.sbs.goodcrawler.extractor.selector.NumericaElementCssSelector.java
@Override public Number getContent() throws ExtractException { try {// w ww . j a v a2s . c o m // content???document2+?? if (null != content && !newDoc) { return content; } if (null != document) { Elements elements = super.document.select(value); if (elements.isEmpty()) return null; String temp; switch ($Attr) { case text: temp = CharMatcher.DIGIT.retainFrom(getExtractText(elements)); break; default: temp = CharMatcher.DIGIT.retainFrom(getExtractAttr(elements, attr)); break; } if (StringUtils.isNotBlank(temp)) { content = NumberUtils.createNumber(temp); if (null != actions && actions.size() > 0) { for (IntegerSelectorAction action : actions) { this.content = action.doAction((Integer) content); } } newDoc = false; return content; } } } catch (Exception e) { e.printStackTrace(); throw new ExtractException("????:" + e.getMessage()); } return null; }
From source file:org.structr.schema.action.Function.java
public static Object numberOrString(final String value) { if (value != null) { if ("true".equals(value.toLowerCase())) { return true; }//w ww . j a va 2 s .co m if ("false".equals(value.toLowerCase())) { return false; } if (NumberUtils.isNumber(value)) { return NumberUtils.createNumber(value); } } return value; }
From source file:org.thelq.stackexchange.dbimport.DumpParser.java
public void parseNextEntry() { try {//ww w . ja va2s.c o m if (!enabled) throw new RuntimeException("Parser is disabled"); else if (endOfFile) throw new RuntimeException("Reached end of file, cannot continue"); else if (parsedCount == 0) log.info("Starting parsing {}", dumpEntry.getName()); int eventType = xmlReader.nextTag(); String curElement = xmlReader.getName().toString(); //System.out.println("Current element: " + curElement); if (curElement.equals(getRoot())) { //Were done, shutdown this parser endOfFile = true; log.info("Done parsing {}, parsed {} enteries", dumpEntry.getName(), parsedCount); return; } else if (eventType != XMLEvent.START_ELEMENT) throw new RuntimeException("Unexpected event " + ErrorConsts.tokenTypeDesc(eventType)); //Build attributes map log.debug("Parsing entry {}", parsedCount); Map<String, Object> attributesMap = ArrayMap.create(xmlReader.getAttributeCount()); for (int i = 0; i < xmlReader.getAttributeCount(); i++) { String attributeName = xmlReader.getAttributeLocalName(i); Type attributeType = properties.get(attributeName); if (attributeType == null) throw new RuntimeException( "Unknown column " + attributeName + " at " + xmlReader.getLocation()); Class attributeTypeClass = attributeType.getReturnedClass(); String attributeValueRaw = xmlReader.getAttributeValue(i); //Attempt to convert to number if nessesary Object attributeValue; if (attributeTypeClass == Date.class) { log.debug("Converting {} to a date", attributeValueRaw); if (attributeValueRaw.length() < 11) attributeValue = dateFormatterShort.parse(attributeValueRaw); else attributeValue = dateFormatterLong.parse(attributeValueRaw); } else if (attributeTypeClass == Byte.class) { log.debug("Converting {} to a byte", attributeValueRaw); attributeValue = Byte.parseByte(attributeValueRaw); } else if (attributeTypeClass != String.class) { log.debug("Converting {} to class {}", attributeValueRaw, attributeTypeClass); if (attributeValueRaw.isEmpty()) attributeValue = 0; else attributeValue = NumberUtils.createNumber(attributeValueRaw); } else attributeValue = attributeValueRaw; attributesMap.put(attributeName, attributeValue); } //Advance to END_ELEMENT, skipping the attributes and other stuff while (xmlReader.next() != XMLEvent.END_ELEMENT) { } parsedCount++; databaseWriter.insertData(attributesMap); } catch (Exception e) { throw new RuntimeException("Cannot parse entry in " + dumpEntry.getLocation() + " #" + (parsedCount + 1) + " at " + xmlReader.getLocation(), e); } }