IfImpl.java :  » IDE-Netbeans » bpel » org » netbeans » modules » bpel » model » impl » Java Open Source

Java Open Source » IDE Netbeans » bpel 
bpel » org » netbeans » modules » bpel » model » impl » IfImpl.java
/*
 * The contents of this file are subject to the terms of the Common Development
 * and Distribution License (the License). You may not use this file except in
 * compliance with the License.
 * 
 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
 * or http://www.netbeans.org/cddl.txt.
 * 
 * When distributing Covered Code, include this CDDL Header Notice in each file
 * and include the License file at http://www.netbeans.org/cddl.txt.
 * If applicable, add the following below the CDDL Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyrighted [year] [name of copyright owner]"
 * 
 * The Original Software is NetBeans. The Initial Developer of the Original
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
 * Microsystems, Inc. All Rights Reserved.
 */

/**
 *
 */
package org.netbeans.modules.bpel.model.impl;

import java.util.List;

import org.netbeans.modules.bpel.model.api.BpelEntity;
import org.netbeans.modules.bpel.model.api.Else;
import org.netbeans.modules.bpel.model.api.ElseIf;
import org.netbeans.modules.bpel.model.api.ExtendableActivity;
import org.netbeans.modules.bpel.model.api.If;
import org.netbeans.modules.bpel.model.api.support.BpelModelVisitor;
import org.netbeans.modules.bpel.model.xam.BpelElements;
import org.netbeans.modules.bpel.model.xam.BpelTypesEnum;
import org.w3c.dom.Element;


/**
 * @author ads
 *
 */
public class IfImpl extends ConditionalActivity implements If {


    IfImpl( BpelModelImpl model, Element e ) {
        super(model, e);
    }

    IfImpl( BpelBuilderImpl builder ) {
        super(builder, BpelElements.IF.getName() );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.ActivityHolder#getActivity()
     */
    public ExtendableActivity getActivity() {
        return getChild(ExtendableActivity.class);
    }
    
    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.ActivityHolder#setActivity(org.netbeans.modules.soa.model.bpel20.api.ExtendableActivity)
     */
    public void setActivity( ExtendableActivity activity ) {
        setChild(activity, ExtendableActivity.class , 
                BpelTypesEnum.ELSE_IF,
                BpelTypesEnum.ELSE);
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.netbeans.modules.soa.model.bpel20.api.ActivityHolder#removeActivity()
     */
    public void removeActivity() {
        removeChild(ExtendableActivity.class);
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#getElseIfs()
     */
    public ElseIf[] getElseIfs() {
        readLock();
        try {
            List<ElseIf> list = getChildren( ElseIf.class );
            return list.toArray( new ElseIf[ list.size() ] );
        }
        finally {
            readUnlock();
        }
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#setElseIfs(org.netbeans.modules.soa.model.bpel20.api.ElseIf[])
     */
    public void setElseIfs( ElseIf[] value ) {
        setArrayBefore( value , ElseIf.class , BpelTypesEnum.ELSE );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#insertEleIf(org.netbeans.modules.soa.model.bpel20.api.ElseIf, int)
     */
    public void insertElseIf( ElseIf value, int i ) {
        insertAtIndex( value , ElseIf.class , i , BpelTypesEnum.ELSE );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#addElseIf(org.netbeans.modules.soa.model.bpel20.api.ElseIf)
     */
    public void addElseIf( ElseIf value ) {
        addChildBefore( value , ElseIf.class , BpelTypesEnum.ELSE );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#getElseIf(int)
     */
    public ElseIf getElseIf( int i ) {
        return getChild( ElseIf.class );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#setElseIf(org.netbeans.modules.soa.model.bpel20.api.ElseIf, int)
     */
    public void setElseIf( ElseIf value, int i ) {
        setChildAtIndex( value , ElseIf.class , i );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#removeElseIf(int)
     */
    public void removeElseIf( int i ) {
        removeChild( ElseIf.class , i );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#getElse()
     */
    public Else getElse() {
        return getChild( Else.class );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#setElse(org.netbeans.modules.soa.model.bpel20.api.Else)
     */
    public void setElse( Else value ) {
        setChild( value , Else.class );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#removeElse()
     */
    public void removeElse() {
        removeChild( Else.class );
    }

    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.BpelEntity#getElementType()
     */
    public Class<? extends BpelEntity> getElementType() {
        return If.class;
    }
    
    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.api.If#sizeElseIfs()
     */
    public int sizeElseIfs(){
        readLock();
        try {
            return getChildren( ElseIf.class ).size();
        }
        finally {
            readUnlock();
        }
    }
    
    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.impl.BpelEntityImpl#acceptThis(org.netbeans.modules.soa.model.bpel20.api.support.BpelModelVisitor)
     */
    public void accept( BpelModelVisitor visitor ) {
        visitor.visit( this );
    }
    
    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.impl.ConditionalActivity#create(org.w3c.dom.Element)
     */
    @Override
    protected BpelEntity create( Element element ) {
        BpelEntity entity = Utils.createActivityGroup(getBpelModel(), element);
        if ( entity!= null ) {
            return entity;
        }
        if ( BpelElements.ELSE_IF.getName().equals( element.getLocalName() ) ){
            return new ElseIfImpl( getModel() , element );
        }
        else if ( BpelElements.ELSE.getName().equals( element.getLocalName() ) ){
            return new ElseImpl( getModel() , element );
        }
        return super.create(element);
    }
    
    /* (non-Javadoc)
     * @see org.netbeans.modules.soa.model.bpel20.impl.BpelContainerImpl#getChildType(T)
     */
    @Override
    protected <T extends BpelEntity> Class<? extends BpelEntity> 
        getChildType( T entity )
    {       
        if ( entity instanceof ExtendableActivity ){
            return ExtendableActivity.class;
        }
        return super.getChildType(entity);
    }
    
    /* (non-Javadoc)
     * @see org.netbeans.modules.bpel.model.impl.BpelContainerImpl#getMultiplicity(org.netbeans.modules.bpel.model.api.BpelEntity)
     */
    @Override
    protected Multiplicity getMultiplicity( BpelEntity entity )
    {
        if ( getChildType( entity ).equals( Else.class) 
                || getChildType( entity ).equals( ExtendableActivity.class))
        {
            return Multiplicity.SINGLE;
        }
        return super.getMultiplicity(entity);
    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.