/******************************************************************************* * Copyright (c) 2010, 2011 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.jpa.eclipselink.core.internal.context.java; import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable; 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.internal.context.java.JavaManyToOneMappingDefinition; import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkConverterAnnotation; import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkJoinFetchAnnotation; import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkObjectTypeConverterAnnotation; import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkStructConverterAnnotation; import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkTypeConverterAnnotation; public class EclipseLinkJavaManyToOneMappingDefinition extends JavaAttributeMappingDefinitionWrapper { private static final JavaAttributeMappingDefinition DELEGATE = JavaManyToOneMappingDefinition.instance(); // singleton private static final JavaAttributeMappingDefinition INSTANCE = new EclipseLinkJavaManyToOneMappingDefinition(); /** * Return the singleton. */ public static JavaAttributeMappingDefinition instance() { return INSTANCE; } /** * Enforce singleton usage */ private EclipseLinkJavaManyToOneMappingDefinition() { super(); } @Override protected JavaAttributeMappingDefinition getDelegate() { return DELEGATE; } @Override public Iterable getSupportingAnnotationNames() { return COMBINED_SUPPORTING_ANNOTATION_NAMES; } private static final String[] ECLIPSE_LINK_SUPPORTING_ANNOTATION_NAMES_ARRAY = new String[] { EclipseLinkConverterAnnotation.ANNOTATION_NAME, EclipseLinkJoinFetchAnnotation.ANNOTATION_NAME, EclipseLinkObjectTypeConverterAnnotation.ANNOTATION_NAME, EclipseLinkStructConverterAnnotation.ANNOTATION_NAME, EclipseLinkTypeConverterAnnotation.ANNOTATION_NAME, }; public static final Iterable ECLIPSE_LINK_SUPPORTING_ANNOTATION_NAMES = new ArrayIterable(ECLIPSE_LINK_SUPPORTING_ANNOTATION_NAMES_ARRAY); @SuppressWarnings("unchecked") private static final Iterable COMBINED_SUPPORTING_ANNOTATION_NAMES = new CompositeIterable( DELEGATE.getSupportingAnnotationNames(), ECLIPSE_LINK_SUPPORTING_ANNOTATION_NAMES ); }