blob: 2d7cd326de8a4c01b886106e98baaa01ccab625c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2007 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0, which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html.
*
* Contributors:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.core.internal.mappings;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.jpt.core.internal.content.java.mappings.JPA;
/**
* <!-- begin-user-doc -->
* A representation of the literals of the enumeration '<em><b>Temporal Type</b></em>',
* and utility methods for working with them.
* <!-- end-user-doc -->
* @see org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage#getTemporalType()
* @model
* @generated
*/
public enum TemporalType implements Enumerator {
/**
* The '<em><b>Null</b></em>' literal object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #NULL_VALUE
* @generated
* @ordered
*/
NULL(0, "Null", ""), /**
* The '<em><b>DATE</b></em>' literal object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #DATE_VALUE
* @generated
* @ordered
*/
DATE(1, "DATE", "Date"), /**
* The '<em><b>TIME</b></em>' literal object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #TIME_VALUE
* @generated
* @ordered
*/
TIME(2, "TIME", "Time"), /**
* The '<em><b>TIMESTAMP</b></em>' literal object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #TIMESTAMP_VALUE
* @generated
* @ordered
*/
TIMESTAMP(3, "TIMESTAMP", "Timestamp");
/**
* The '<em><b>Null</b></em>' literal value.
* <!-- begin-user-doc -->
* <p>
* If the meaning of '<em><b>Null</b></em>' literal object isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @see #NULL
* @model name="Null" literal=""
* @generated
* @ordered
*/
public static final int NULL_VALUE = 0;
/**
* The '<em><b>DATE</b></em>' literal value.
* <!-- begin-user-doc -->
* <p>
* If the meaning of '<em><b>DATE</b></em>' literal object isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @see #DATE
* @model literal="Date"
* @generated
* @ordered
*/
public static final int DATE_VALUE = 1;
/**
* The '<em><b>TIME</b></em>' literal value.
* <!-- begin-user-doc -->
* <p>
* If the meaning of '<em><b>TIME</b></em>' literal object isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @see #TIME
* @model literal="Time"
* @generated
* @ordered
*/
public static final int TIME_VALUE = 2;
/**
* The '<em><b>TIMESTAMP</b></em>' literal value.
* <!-- begin-user-doc -->
* <p>
* If the meaning of '<em><b>TIMESTAMP</b></em>' literal object isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @see #TIMESTAMP
* @model literal="Timestamp"
* @generated
* @ordered
*/
public static final int TIMESTAMP_VALUE = 3;
/**
* An array of all the '<em><b>Temporal Type</b></em>' enumerators.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static final TemporalType[] VALUES_ARRAY = new TemporalType[] {
NULL, DATE, TIME, TIMESTAMP,
};
/**
* A public read-only list of all the '<em><b>Temporal Type</b></em>' enumerators.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final List<TemporalType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
/**
* Returns the '<em><b>Temporal Type</b></em>' literal with the specified literal value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static TemporalType get(String literal) {
for (int i = 0; i < VALUES_ARRAY.length; ++i) {
TemporalType result = VALUES_ARRAY[i];
if (result.toString().equals(literal)) {
return result;
}
}
return null;
}
/**
* Returns the '<em><b>Temporal Type</b></em>' literal with the specified name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static TemporalType getByName(String name) {
for (int i = 0; i < VALUES_ARRAY.length; ++i) {
TemporalType result = VALUES_ARRAY[i];
if (result.getName().equals(name)) {
return result;
}
}
return null;
}
/**
* Returns the '<em><b>Temporal Type</b></em>' literal with the specified integer value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static TemporalType get(int value) {
switch (value) {
case NULL_VALUE :
return NULL;
case DATE_VALUE :
return DATE;
case TIME_VALUE :
return TIME;
case TIMESTAMP_VALUE :
return TIMESTAMP;
}
return null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private final int value;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private final String name;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private final String literal;
/**
* Only this class can construct instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private TemporalType(int value, String name, String literal) {
this.value = value;
this.name = name;
this.literal = literal;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getValue() {
return value;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getName() {
return name;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getLiteral() {
return literal;
}
/**
* Returns the literal value of the enumerator, which is its string representation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
return literal;
}
public static TemporalType fromJavaAnnotationValue(Object javaAnnotationValue) {
if (javaAnnotationValue == null) {
return NULL;
}
if (javaAnnotationValue.equals(JPA.TEMPORAL_TYPE__DATE)) {
return DATE;
}
if (javaAnnotationValue.equals(JPA.TEMPORAL_TYPE__TIME)) {
return TIME;
}
if (javaAnnotationValue.equals(JPA.TEMPORAL_TYPE__TIMESTAMP)) {
return TIMESTAMP;
}
return NULL;
}
public String convertToJavaAnnotationValue() {
switch (this.getValue()) {
case NULL_VALUE :
return null;
case DATE_VALUE :
return JPA.TEMPORAL_TYPE__DATE;
case TIME_VALUE :
return JPA.TEMPORAL_TYPE__TIME;
case TIMESTAMP_VALUE :
return JPA.TEMPORAL_TYPE__TIMESTAMP;
default :
throw new IllegalArgumentException("unknown temporal type: " + this);
}
}
}