// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.core.model.metadata.types; /** * DOC amaumont class global comment. Detailled comment <br/> * * $Id$ * */ public final class JavaType { private String label; private String id; private Class nullableClass; private Class primitiveClass; private boolean generateWithCanonicalName; // only to know for object input/output stream, if should base on readObject or not. private boolean objectBased; /** * @param label * @param primitiveType * @param clazzType */ protected JavaType(Class nullableClass, Class primitiveClass) { super(); this.nullableClass = nullableClass; this.primitiveClass = primitiveClass; this.label = primitiveClass.getSimpleName() + " | " + nullableClass.getSimpleName(); //$NON-NLS-1$ this.id = createId(nullableClass.getSimpleName()); } /** * DOC amaumont Comment method "createId". * * @param simpleName * @return */ private String createId(String value) { return "id_" + value; //$NON-NLS-1$ } /** * @param label * @param nullableClass */ public JavaType(Class nullableClass, boolean generateWithCanonicalName, boolean objectBased) { super(); this.nullableClass = nullableClass; this.label = nullableClass.getSimpleName(); this.id = createId(nullableClass.getSimpleName()); this.generateWithCanonicalName = generateWithCanonicalName; this.objectBased = objectBased; } public JavaType(Class nullableClass, boolean generateWithCanonicalName, String label) { super(); this.nullableClass = nullableClass; this.label = label; this.id = createId(label); this.generateWithCanonicalName = generateWithCanonicalName; } /** * @param label * @param id * @param nullableClass * @param primitiveClass */ protected JavaType(String id, Class nullableClass, Class primitiveClass, String label) { super(); this.label = label; this.nullableClass = nullableClass; this.primitiveClass = primitiveClass; this.id = createId(nullableClass.getSimpleName()); } /** * DOC amaumont JavaType constructor comment. * * @param id * @param nullableClass * @param primitiveClass */ protected JavaType(String id, Class nullableClass, Class primitiveClass) { super(); this.id = id; this.nullableClass = nullableClass; this.primitiveClass = primitiveClass; } /** * DOC amaumont JavaType constructor comment. * * @param id * @param nullableClass */ public JavaType(String id, Class nullableClass) { super(); this.id = id; this.nullableClass = nullableClass; } /** * Getter for label. * * @return the label */ public String getLabel() { return this.label; } /** * Getter for id. * * @return the id */ public String getId() { return this.id; } /** * Getter for objectClass. * * @return the objectClass */ public Class getNullableClass() { return this.nullableClass; } /** * Getter for primitiveClass. Can be null. * * @return the primitiveClass */ public Class getPrimitiveClass() { return this.primitiveClass; } /** * Getter for generateWithCanonicalName. * * @return the generateWithCanonicalName */ public boolean isGenerateWithCanonicalName() { return this.generateWithCanonicalName; } /** * * @return * @author */ public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("JavaType["); //$NON-NLS-1$ buffer.append("label = ").append(label); //$NON-NLS-1$ buffer.append(" nullableClass = ").append(nullableClass); //$NON-NLS-1$ buffer.append(" primitiveClass = ").append(primitiveClass); //$NON-NLS-1$ buffer.append("]"); //$NON-NLS-1$ return buffer.toString(); } public boolean isPrimitive() { return this.primitiveClass != null; } public boolean isObjectBased() { return objectBased; } public void setObjectBased(boolean objectBased) { this.objectBased = objectBased; } }