/***************************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.xmpbox.type; public enum Types { Structured(false, null, null), DefinedType(false, null, null), // basic Text(true, null, TextType.class), Date(true, null, DateType.class), Boolean(true, null, BooleanType.class), Integer( true, null, IntegerType.class), Real(true, null, RealType.class),GPSCoordinate(true,Text,TextType.class), ProperName(true, Text, ProperNameType.class), Locale(true, Text, LocaleType.class), AgentName(true, Text, AgentNameType.class), GUID(true, Text, GUIDType.class), XPath(true, Text, XPathType.class), Part(true, Text, PartType.class), URL(true, Text, URLType.class), URI(true, Text, URIType.class), Choice(true, Text, ChoiceType.class), MIMEType(true, Text, MIMEType.class), LangAlt(true, Text, TextType.class), RenditionClass( true, Text, RenditionClassType.class), Rational(true,Text,RationalType.class), Layer(false, Structured, LayerType.class), Thumbnail(false, Structured, ThumbnailType.class), ResourceEvent(false, Structured, ResourceEventType.class), ResourceRef(false, Structured, ResourceRefType.class), Version(false, Structured, VersionType.class), PDFASchema(false, Structured, PDFASchemaType.class), PDFAField(false, Structured, PDFAFieldType.class), PDFAProperty(false, Structured, PDFAPropertyType.class), PDFAType(false, Structured, PDFATypeType.class), Job(false, Structured, JobType.class),OECF(false,Structured, OECFType.class), CFAPattern(false,Structured, CFAPatternType.class),DeviceSettings(false,Structured, DeviceSettingsType.class),Flash(false,Structured,FlashType.class),Dimensions(false,Structured, DimensionsType.class); // For defined types private final boolean simple; private final Types basic; private final Class<? extends AbstractField> clz; private Types(boolean s, Types b, Class<? extends AbstractField> c) { this.simple = s; this.basic = b; this.clz = c; } public boolean isSimple() { return simple; } public boolean isBasic() { return basic == null; } public boolean isStructured() { return basic == Structured; } public boolean isDefined() { return this == DefinedType; } public Types getBasic() { return basic; } public Class<? extends AbstractField> getImplementingClass() { return clz; } }