package org.openflexo.foundation.viewpoint; import org.openflexo.foundation.viewpoint.ViewPoint.ViewPointBuilder; import org.openflexo.localization.FlexoLocalization; public class PrimitivePatternRole extends PatternRole { public static enum PrimitiveType { Boolean, String, LocalizedString, Integer, Float } private PrimitiveType primitiveType; public PrimitivePatternRole(ViewPointBuilder builder) { super(builder); } @Override public PatternRoleType getType() { return PatternRoleType.Primitive; } public PrimitiveType getPrimitiveType() { return primitiveType; } public void setPrimitiveType(PrimitiveType primitiveType) { this.primitiveType = primitiveType; } @Override public String getPreciseType() { if (primitiveType == null) { return null; } switch (primitiveType) { case String: return FlexoLocalization.localizedForKey("string"); case LocalizedString: return FlexoLocalization.localizedForKey("localized_string"); case Boolean: return FlexoLocalization.localizedForKey("boolean"); case Integer: return FlexoLocalization.localizedForKey("integer"); case Float: return FlexoLocalization.localizedForKey("float"); default: return null; } } @Override public Class<?> getAccessedClass() { if (primitiveType == null) { return null; } switch (primitiveType) { case String: return String.class; case LocalizedString: return String.class; case Boolean: return Boolean.class; case Integer: return Integer.TYPE; case Float: return Float.TYPE; default: return null; } } @Override public boolean getIsPrimaryRole() { return false; } @Override public void setIsPrimaryRole(boolean isPrimary) { // Not relevant } }