/*******************************************************************************
* Copyright (c) 2011 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.hibernate.jpt.core.internal.jpa2.context.definition;
import org.eclipse.jpt.common.utility.internal.iterable.IterableTools;
import org.eclipse.jpt.jpa.core.context.java.JavaAttributeMappingDefinition;
import org.eclipse.jpt.jpa.core.internal.context.java.JavaAttributeMappingDefinitionWrapper;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.JPA2_0;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.MapKeyClassAnnotation2_0;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.MapKeyColumnAnnotation2_0;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.MapKeyEnumeratedAnnotation2_0;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.MapKeyJoinColumnAnnotation2_0;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.MapKeyTemporalAnnotation2_0;
import org.eclipse.jpt.jpa.core.jpa2.resource.java.OrderColumnAnnotation2_0;
import org.eclipse.jpt.jpa.core.resource.java.AttributeOverrideAnnotation;
import org.eclipse.jpt.jpa.core.resource.java.JPA;
import org.jboss.tools.hibernate.jpt.core.internal.context.definition.HibernateJavaManyToManyMappingDefinition;
/**
*
* @author Dmitry Geraskov (geraskov@gmail.com)
*
*/
public class HibernateJavaManyToManyMappingDefinition2_0 extends JavaAttributeMappingDefinitionWrapper
{
private static final JavaAttributeMappingDefinition DELEGATE = HibernateJavaManyToManyMappingDefinition.instance();
// singleton
private static final JavaAttributeMappingDefinition INSTANCE = new HibernateJavaManyToManyMappingDefinition2_0();
/**
* Return the singleton.
*/
public static JavaAttributeMappingDefinition instance() {
return INSTANCE;
}
/**
* Enforce singleton usage
*/
private HibernateJavaManyToManyMappingDefinition2_0() {
super();
}
@Override
protected JavaAttributeMappingDefinition getDelegate() {
return DELEGATE;
}
@Override
public Iterable<String> getSupportingAnnotationNames() {
return COMBINED_SUPPORTING_ANNOTATION_NAMES;
}
public static final String[] SUPPORTING_ANNOTATION_NAMES_ARRAY_2_0 = new String[] {
AttributeOverrideAnnotation.ANNOTATION_NAME,
JPA.ATTRIBUTE_OVERRIDES,
MapKeyClassAnnotation2_0.ANNOTATION_NAME,
MapKeyColumnAnnotation2_0.ANNOTATION_NAME,
MapKeyEnumeratedAnnotation2_0.ANNOTATION_NAME,
MapKeyJoinColumnAnnotation2_0.ANNOTATION_NAME,
JPA2_0.MAP_KEY_JOIN_COLUMNS,
MapKeyTemporalAnnotation2_0.ANNOTATION_NAME,
OrderColumnAnnotation2_0.ANNOTATION_NAME
};
private static final Iterable<String> SUPPORTING_ANNOTATION_NAMES_2_0 = IterableTools.iterable(SUPPORTING_ANNOTATION_NAMES_ARRAY_2_0);
@SuppressWarnings("unchecked")
private static final Iterable<String> COMBINED_SUPPORTING_ANNOTATION_NAMES = IterableTools.concatenate(
DELEGATE.getSupportingAnnotationNames(),
SUPPORTING_ANNOTATION_NAMES_2_0
);
}