Example usage for org.apache.commons.lang3.math NumberUtils createNumber

List of usage examples for org.apache.commons.lang3.math NumberUtils createNumber

Introduction

In this page you can find the example usage for org.apache.commons.lang3.math NumberUtils createNumber.

Prototype

public static Number createNumber(final String str) throws NumberFormatException 

Source Link

Document

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.

Usage

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);
    }
}