
org.optaplanner.constraint.streams.drools.DroolsConstraintFactory Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.optaplanner.constraint.streams.drools;
import org.optaplanner.constraint.streams.common.InnerConstraintFactory;
import org.optaplanner.constraint.streams.common.RetrievalSemantics;
import org.optaplanner.constraint.streams.drools.uni.DroolsFromUniConstraintStream;
import org.optaplanner.core.api.score.stream.uni.UniConstraintStream;
import org.optaplanner.core.impl.domain.constraintweight.descriptor.ConstraintConfigurationDescriptor;
import org.optaplanner.core.impl.domain.solution.descriptor.SolutionDescriptor;
public final class DroolsConstraintFactory
extends InnerConstraintFactory> {
private final SolutionDescriptor solutionDescriptor;
private final String defaultConstraintPackage;
private final DroolsVariableFactory variableFactory = new DroolsVariableFactory();
public DroolsConstraintFactory(SolutionDescriptor solutionDescriptor) {
this.solutionDescriptor = solutionDescriptor;
ConstraintConfigurationDescriptor configurationDescriptor = solutionDescriptor
.getConstraintConfigurationDescriptor();
if (configurationDescriptor == null) {
Package pack = solutionDescriptor.getSolutionClass().getPackage();
defaultConstraintPackage = (pack == null) ? "" : pack.getName();
} else {
defaultConstraintPackage = configurationDescriptor.getConstraintPackage();
}
}
@Override
public UniConstraintStream forEachIncludingNullVars(Class sourceClass) {
assertValidFromType(sourceClass);
return new DroolsFromUniConstraintStream<>(this, sourceClass, RetrievalSemantics.STANDARD);
}
@Override
public UniConstraintStream fromUnfiltered(Class fromClass) {
assertValidFromType(fromClass);
return new DroolsFromUniConstraintStream<>(this, fromClass, RetrievalSemantics.LEGACY);
}
// ************************************************************************
// Getters/setters
// ************************************************************************
@Override
public SolutionDescriptor getSolutionDescriptor() {
return solutionDescriptor;
}
public DroolsVariableFactory getVariableFactory() {
return variableFactory;
}
@Override
public String getDefaultConstraintPackage() {
return defaultConstraintPackage;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy