com.gwtplatform.processors.tools.utils.Primitives.java Source code

Java tutorial

Introduction

Here is the source code for com.gwtplatform.processors.tools.utils.Primitives.java

Source

/*
 * Copyright 2015 ArcBees Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package com.gwtplatform.processors.tools.utils;

import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;

public enum Primitives {
    BOOLEAN("boolean", Boolean.class, "false"), BYTE("byte", Byte.class, "0"), CHAR("char", Character.class,
            "0"), DOUBLE("double", Double.class, "0D"), FLOAT("float", Float.class, "0F"), INT("int", Integer.class,
                    "0"), LONG("long", Long.class,
                            "0L"), SHORT("short", Short.class, "0"), VOID("void", Void.class, "null");

    public static final Predicate<CharSequence> IS_PRIMITIVE_PREDICATE = name -> findByPrimitive(name).isPresent();

    private final String primitive;
    private final Class<?> boxedClass;
    private final String defaultValueLiteral;

    Primitives(String primitive, Class<?> boxedClass, String defaultValueLiteral) {
        this.primitive = primitive;
        this.boxedClass = boxedClass;
        this.defaultValueLiteral = defaultValueLiteral;
    }

    public static Optional<Primitives> findByPrimitive(final CharSequence primitiveName) {
        return FluentIterable.of(values())
                .firstMatch(primitives -> primitiveName.equals(primitives.getPrimitive()));
    }

    public static Optional<Primitives> findByBoxed(final CharSequence boxedName) {
        return FluentIterable.of(values())
                .firstMatch(primitives -> boxedName.equals(primitives.getBoxedClass().getCanonicalName()));
    }

    public String getPrimitive() {
        return primitive;
    }

    public Class<?> getBoxedClass() {
        return boxedClass;
    }

    public String getDefaultValueLiteral() {
        return defaultValueLiteral;
    }
}