Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010 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.planner.config.termination;
 
 import java.util.List;
 
 
 @XStreamAlias("termination")
 public class TerminationConfig implements Cloneable {
 
     private Class<TerminationterminationClass = null;
 
 
     private Integer maximumStepCount = null;
     private Long maximumTimeMillisSpend = null;
     private Long maximumSecondsSpend = null;
     private Long maximumMinutesSpend = null;
     private Long maximumHoursSpend = null;
     private String scoreAttained = null;
     private Integer maximumUnimprovedStepCount = null;
 
     @XStreamImplicit(itemFieldName = "termination")
     private List<TerminationConfigterminationConfigList = null;
 
     public Class<TerminationgetTerminationClass() {
         return ;
     }
 
     public void setTerminationClass(Class<TerminationterminationClass) {
         this. = terminationClass;
     }
 
         return ;
     }
 
     public void setTerminationCompositionStyle(TerminationCompositionStyle terminationCompositionStyle) {
         this. = terminationCompositionStyle;
     }
 
     public Integer getMaximumStepCount() {
         return ;
     }
 
     public void setMaximumStepCount(Integer maximumStepCount) {
         this. = maximumStepCount;
     }
 
     public Long getMaximumTimeMillisSpend() {
         return ;
     }
 
     public void setMaximumTimeMillisSpend(Long maximumTimeMillisSpend) {
         this. = maximumTimeMillisSpend;
     }
 
     public Long getMaximumSecondsSpend() {
         return ;
     }
 
     public void setMaximumSecondsSpend(Long maximumSecondsSpend) {
         this. = maximumSecondsSpend;
     }
 
     public Long getMaximumMinutesSpend() {
         return ;
     }
 
     public void setMaximumMinutesSpend(Long maximumMinutesSpend) {
         this. = maximumMinutesSpend;
     }
    public Long getMaximumHoursSpend() {
        return ;
    }
    public void setMaximumHoursSpend(Long maximumHoursSpend) {
        this. = maximumHoursSpend;
    }
    public String getScoreAttained() {
        return ;
    }
    public void setScoreAttained(String scoreAttained) {
        this. = scoreAttained;
    }
        return ;
    }
    public void setMaximumUnimprovedStepCount(Integer maximumUnimprovedStepCount) {
        this. = maximumUnimprovedStepCount;
    }
        return ;
    }
    public void setTerminationConfigList(List<TerminationConfigterminationConfigList) {
        this. = terminationConfigList;
    }
    
    // ************************************************************************
    // Builder methods
    // ************************************************************************
    public Termination buildTermination(ScoreDefinition scoreDefinitionTermination chainedTermination) {
        Termination termination = buildTermination(scoreDefinition);
        if (termination == null) {
            return chainedTermination;
        }
        return new OrCompositeTermination(chainedTerminationtermination);
    }
    public Termination buildTermination(ScoreDefinition scoreDefinition) {
        List<TerminationterminationList = new ArrayList<Termination>();
        if ( != null) {
            try {
                terminationList.add(.newInstance());
            } catch (InstantiationException e) {
                throw new IllegalArgumentException("terminationClass (" + .getName()
                        + ") does not have a public no-arg constructor"e);
            } catch (IllegalAccessException e) {
                throw new IllegalArgumentException("terminationClass (" + .getName()
                        + ") does not have a public no-arg constructor"e);
            }
        }
        if ( != null) {
            StepCountTermination termination = new StepCountTermination();
            termination.setMaximumStepCount();
            terminationList.add(termination);
        }
        Long maximumTimeMillisSpendTotal = calculateMaximumTimeMillisSpendTotal();
        if (maximumTimeMillisSpendTotal != null) {
            TimeMillisSpendTermination termination = new TimeMillisSpendTermination();
            termination.setMaximumTimeMillisSpend(maximumTimeMillisSpendTotal);
            terminationList.add(termination);
        }
        if ( != null) {
            ScoreAttainedTermination termination = new ScoreAttainedTermination();
            termination.setScoreAttained(scoreDefinition.parseScore());
            terminationList.add(termination);
        }
        if ( != null) {
            UnimprovedStepCountTermination termination = new UnimprovedStepCountTermination();
            termination.setMaximumUnimprovedStepCount();
            terminationList.add(termination);
        }
        if ( != null && .isEmpty()) {
            for (TerminationConfig terminationConfig : ) {
                Termination termination = terminationConfig.buildTermination(scoreDefinition);
                if (termination != null) {
                    terminationList.add(termination);
                }
            }
        }
        if (terminationList.size() == 1) {
            return terminationList.get(0);
        } else if (terminationList.size() > 1) {
            AbstractCompositeTermination compositeTermination;
                compositeTermination = new OrCompositeTermination();
            } else if ( == .) {
                compositeTermination = new AndCompositeTermination();
            } else {
                throw new IllegalStateException("The terminationCompositionStyle (" + 
                        + ") is not implemented");
            }
            compositeTermination.setTerminationList(terminationList);
            return compositeTermination;
        } else {
            return null;
        }
    }
        if ( == null &&  == null &&  == null
                &&  == null) {
            return null;
        }
        long maximumTimeMillisSpendTotal = 0L;
        if ( != null) {
            maximumTimeMillisSpendTotal += ;
        }
        if ( != null) {
            maximumTimeMillisSpendTotal +=  * 1000L;
        }
        if ( != null) {
            maximumTimeMillisSpendTotal +=  * 60000L;
        }
        if ( != null) {
            maximumTimeMillisSpendTotal +=  * 3600000L;
        }
        return maximumTimeMillisSpendTotal;
    }
    public void shortenMaximumTimeMillisSpendTotal(long maximumTimeMillisSpendTotal) {
        Long oldMaximumTimeMillisSpendTotal = calculateMaximumTimeMillisSpendTotal();
        if (oldMaximumTimeMillisSpendTotal == null || maximumTimeMillisSpendTotal < oldMaximumTimeMillisSpendTotal) {
             = maximumTimeMillisSpendTotal;
             = null;
             = null;
             = null;
        }
    }
    public void inherit(TerminationConfig inheritedConfig) {
        if ( == null) {
             = inheritedConfig.getTerminationClass();
        }
        if ( == null) {
             = inheritedConfig.getTerminationCompositionStyle();
        }
        if ( == null) {
             = inheritedConfig.getMaximumStepCount();
        }
        if ( == null) {
             = inheritedConfig.getMaximumTimeMillisSpend();
        }
        if ( == null) {
             = inheritedConfig.getMaximumSecondsSpend();
        }
        if ( == null) {
             = inheritedConfig.getMaximumMinutesSpend();
        }
        if ( == null) {
             = inheritedConfig.getMaximumHoursSpend();
        }
        if ( == null) {
             = inheritedConfig.getScoreAttained();
        }
        if ( == null) {
             = inheritedConfig.getMaximumUnimprovedStepCount();
        }
        if ( == null) {
             = inheritedConfig.getTerminationConfigList();
        } else if (inheritedConfig.getTerminationConfigList() != null) {
            // The inherited terminationConfigList should be before the non-inherited one
            List<TerminationConfigmergedList = new ArrayList<TerminationConfig>(
                    inheritedConfig.getTerminationConfigList());
            mergedList.addAll();
             = mergedList;
        }
    }
    @Override
    public TerminationConfig clone() {
        TerminationConfig clone = new TerminationConfig();
        clone.terminationClass = ;
        clone.terminationCompositionStyle = ;
        clone.maximumStepCount = ;
        clone.maximumTimeMillisSpend = ;
        clone.maximumSecondsSpend = ;
        clone.maximumMinutesSpend = ;
        clone.maximumHoursSpend = ;
        clone.scoreAttained = ;
        clone.maximumUnimprovedStepCount = ;
        if ( != null) {
            List<TerminationConfigclonedTerminationConfigList = new ArrayList<TerminationConfig>(
                    .size());
            for (TerminationConfig terminationConfig : ) {
                TerminationConfig clonedTerminationConfig = terminationConfig.clone();
                clonedTerminationConfigList.add(clonedTerminationConfig);
            }
            clone.terminationConfigList = clonedTerminationConfigList;
        }
        return clone;
    }
    public enum TerminationCompositionStyle {
        AND,
        OR,
    }
New to GrepCode? Check out our FAQ X