Package org.drools.workbench.models.guided.dtable.shared.model

Source Code of org.drools.workbench.models.guided.dtable.shared.model.Pattern52

/*
* Copyright 2011 JBoss Inc
*
* 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.drools.workbench.models.guided.dtable.shared.model;

import java.util.ArrayList;
import java.util.List;

import org.drools.workbench.models.datamodel.rule.CEPWindow;
import org.drools.workbench.models.datamodel.rule.HasCEPWindow;

/**
* A Fact Pattern to which column definitions can be added
*/
public class Pattern52
        implements CompositeColumn<ConditionCol52>,
                   HasCEPWindow,
                   DiffColumn {

    // The type of the fact - class - eg Driver, Purchase, Cheese etc.
    private String factType;

    // The name that this gets referenced as. Multiple columns with the same
    // name mean their constraints will be combined.
    private String boundName;

    // Whether the pattern should be negated
    private boolean isNegated;

    //Field restrictions. The Collection used ensures a ConditionCol has a back-reference to this Pattern
    private List<ConditionCol52> conditions;

    //CEP 'window' definition
    private CEPWindow window;

    //Entry-point name
    private String entryPointName;

    /**
     * Available fields for this type of column.
     */
    public static final String FIELD_FACT_TYPE = "factType";

    public static final String FIELD_BOUND_NAME = "boundName";

    public static final String FIELD_IS_NEGATED = "isNegated";

    public static final String FIELD_WINDOW = "window";

    public static final String FIELD_ENTRY_POINT_NAME = "entryPointName";

    public Pattern52() {
        this.conditions = new ArrayList<ConditionCol52>();
    }

    @Override
    public List<BaseColumnFieldDiff> diff( BaseColumn otherColumn ) {
        if ( otherColumn == null ) {
            return null;
        }

        List<BaseColumnFieldDiff> result = new ArrayList<BaseColumnFieldDiff>();
        Pattern52 other = (Pattern52) otherColumn;

        // Field: factType.
        if ( !BaseColumnFieldDiffImpl.isEqualOrNull( this.getFactType(),
                                                     other.getFactType() ) ) {
            result.add( new BaseColumnFieldDiffImpl( FIELD_FACT_TYPE,
                                                     this.getFactType(),
                                                     other.getFactType() ) );
        }

        // Field: boundName.
        if ( !BaseColumnFieldDiffImpl.isEqualOrNull( this.getBoundName(),
                                                     other.getBoundName() ) ) {
            result.add( new BaseColumnFieldDiffImpl( FIELD_BOUND_NAME,
                                                     this.getBoundName(),
                                                     other.getBoundName() ) );
        }

        // Field: isNegated.
        if ( this.isNegated() != other.isNegated() ) {
            result.add( new BaseColumnFieldDiffImpl( FIELD_IS_NEGATED,
                                                     this.isNegated(),
                                                     other.isNegated() ) );
        }

        // Field: window.
        if ( !BaseColumnFieldDiffImpl.isEqualOrNull( this.getWindow(),
                                                     other.getWindow() ) ) {
            result.add( new BaseColumnFieldDiffImpl( FIELD_WINDOW,
                                                     this.getWindow(),
                                                     other.getWindow() ) );
        }

        // Field: entryPointName.
        if ( !BaseColumnFieldDiffImpl.isEqualOrNull( this.getEntryPointName(),
                                                     other.getEntryPointName() ) ) {
            result.add( new BaseColumnFieldDiffImpl( FIELD_ENTRY_POINT_NAME,
                                                     this.getEntryPointName(),
                                                     other.getEntryPointName() ) );
        }

        return result;
    }

    /**
     * Clones this pattern instance.
     * @return The cloned instance.
     */
    public Pattern52 clonePattern() {
        Pattern52 cloned = new Pattern52();
        cloned.setBoundName( getBoundName() );
        cloned.setChildColumns( new ArrayList<ConditionCol52>( getChildColumns() ) );
        cloned.setEntryPointName( getEntryPointName() );
        cloned.setFactType( getFactType() );
        cloned.setNegated( isNegated() );
        cloned.setWindow( getWindow() );
        return cloned;
    }

    /**
     * Update this pattern instance properties with the given ones from other pattern instance.
     * @param other The pattern to obtain the properties to set.
     */
    public void update( Pattern52 other ) {
        setBoundName( other.getBoundName() );
        setChildColumns( other.getChildColumns() );
        setEntryPointName( other.getEntryPointName() );
        setFactType( other.getFactType() );
        setNegated( other.isNegated() );
        setWindow( other.getWindow() );
    }

    public String getFactType() {
        return factType;
    }

    public void setFactType( String factType ) {
        this.factType = factType;
    }

    public String getBoundName() {
        return boundName;
    }

    public boolean isBound() {
        return !( boundName == null || "".equals( boundName ) );
    }

    public void setBoundName( String boundName ) {
        this.boundName = boundName;
    }

    public boolean isNegated() {
        return isNegated;
    }

    public void setNegated( boolean negated ) {
        this.isNegated = negated;
    }

    public List<ConditionCol52> getChildColumns() {
        return this.conditions;
    }

    public void setChildColumns( List<ConditionCol52> conditions ) {
        this.conditions = conditions;
    }

    public void setWindow( CEPWindow window ) {
        this.window = window;
    }

    public CEPWindow getWindow() {
        if ( this.window == null ) {
            this.window = new CEPWindow();
        }
        return this.window;
    }

    public String getEntryPointName() {
        return entryPointName;
    }

    public void setEntryPointName( String entryPointName ) {
        this.entryPointName = entryPointName;
    }

    public String getHeader() {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public void setHeader( String header ) {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public boolean isHideColumn() {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public void setHideColumn( boolean hideColumn ) {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public int getWidth() {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public void setWidth( int width ) {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public DTCellValue52 getDefaultValue() {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

    public void setDefaultValue( DTCellValue52 defaultValue ) {
        throw new UnsupportedOperationException( "Operation only supported by child columns" );
    }

}
TOP

Related Classes of org.drools.workbench.models.guided.dtable.shared.model.Pattern52

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.