/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed 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.kie.workbench.common.services.datamodeller.driver.impl.annotations;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import org.hibernate.envers.Audited;
import org.kie.api.definition.type.ClassReactive;
import org.kie.api.definition.type.Description;
import org.kie.api.definition.type.Duration;
import org.kie.api.definition.type.Expires;
import org.kie.api.definition.type.Key;
import org.kie.api.definition.type.Label;
import org.kie.api.definition.type.Position;
import org.kie.api.definition.type.PropertyReactive;
import org.kie.api.definition.type.Role;
import org.kie.api.definition.type.Timestamp;
import org.kie.api.definition.type.TypeSafe;
import org.kie.api.remote.Remotable;
import org.kie.workbench.common.services.datamodeller.core.AnnotationDefinition;
import org.kie.workbench.common.services.datamodeller.util.DriverUtils;
public class CommonAnnotations {
private static List<AnnotationDefinition> commonAnnotations = new ArrayList<AnnotationDefinition>( );
static {
//Drools & JBPM domain annotations.
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Description.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Key.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Label.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Role.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Position.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( PropertyReactive.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( ClassReactive.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Duration.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Expires.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Timestamp.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( TypeSafe.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Remotable.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( XmlRootElement.class ) );
//JPA domain annotations
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Entity.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Id.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( GeneratedValue.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( SequenceGenerator.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Table.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Column.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( OneToOne.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( OneToMany.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( ManyToOne.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( ManyToMany.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( ElementCollection.class ) );
commonAnnotations.add( DriverUtils.buildAnnotationDefinition( Audited.class ) );
}
public static List<AnnotationDefinition> getCommonAnnotations() {
return commonAnnotations;
}
}