blob: ad54cdedb0c42c508d5f68a205ac71598f09494f [file] [log] [blame]
/*
* 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.apache.uima.ruta.action;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import org.antlr.runtime.Token;
import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.expression.IRutaExpression;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.feature.FeatureMatchExpression;
import org.apache.uima.ruta.expression.list.ListExpression;
import org.apache.uima.ruta.expression.list.StringListExpression;
import org.apache.uima.ruta.expression.list.TypeListExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.resource.WordListExpression;
import org.apache.uima.ruta.expression.resource.WordTableExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
public class ActionFactory {
private ActionFactory() {
}
public static AbstractRutaAction createColorAction(ITypeExpression typeExpr,
IStringExpression bgcolor, IStringExpression fgcolor, IBooleanExpression selected,
RutaBlock parent) {
return new ColorAction(typeExpr, bgcolor, fgcolor, selected);
}
public static AbstractRutaAction createDelAction(RutaBlock parent) {
return new DelAction();
}
public static AbstractRutaAction createMarkFastAction(ITypeExpression type,
WordListExpression list, IBooleanExpression ignore, INumberExpression ignoreLength,
IBooleanExpression ignoreWS, RutaBlock parent) {
return new MarkFastAction(type, list, ignore, ignoreLength, ignoreWS);
}
public static AbstractRutaAction createMarkFastAction(ITypeExpression type,
StringListExpression list, IBooleanExpression ignore, INumberExpression ignoreLength,
IBooleanExpression ignoreWS, RutaBlock env) {
return new MarkFastAction(type, list, ignore, ignoreLength, ignoreWS);
}
public static AbstractRutaAction createMarkLastAction(ITypeExpression type, RutaBlock parent) {
return new MarkLastAction(type);
}
public static AbstractRutaAction createRetainTypeAction(List<ITypeExpression> types,
RutaBlock parent) {
return new RetainTypeAction(types);
}
public static AbstractRutaAction createLogAction(IStringExpression expr, Token log,
RutaBlock parent) {
String logString = log == null ? "INFO" : log.getText();
Level level = Level.parse(logString.toUpperCase());
return new LogAction(expr, level);
}
public static AbstractRutaAction createMarkAction(INumberExpression score, ITypeExpression type,
List<INumberExpression> list, RutaBlock parent) {
return new MarkAction(type, score, list);
}
public static AbstractRutaAction createMarkOnceAction(INumberExpression score,
ITypeExpression type, List<INumberExpression> list, RutaBlock env) {
return new MarkOnceAction(type, score, list);
}
public static AbstractRutaAction createReplaceAction(IStringExpression lit, RutaBlock parent) {
return new ReplaceAction(lit);
}
public static AbstractRutaAction createCreateAction(ITypeExpression typeExpr,
Map<IStringExpression, IRutaExpression> map, List<INumberExpression> indexes,
RutaBlock parent) {
return new CreateAction(typeExpr, map, indexes);
}
public static AbstractRutaAction createGatherAction(ITypeExpression typeExpr,
Map<IStringExpression, IRutaExpression> map, List<INumberExpression> indexes,
RutaBlock parent) {
return new GatherAction(typeExpr, map, indexes);
}
public static AbstractRutaAction createFillAction(ITypeExpression type,
Map<IStringExpression, IRutaExpression> map, RutaBlock parent) {
return new FillAction(type, map);
}
public static AbstractRutaAction createCallAction(String ns, RutaBlock parent) {
return new CallAction(ns);
}
public static AbstractRutaAction createConfigureAction(String ns,
Map<IStringExpression, IRutaExpression> map, RutaBlock env) {
return new ConfigureAction(ns, map);
}
public static AbstractRutaAction createAssignAction(Token nv, IRutaExpression e, RutaBlock parent) {
return new AssignAction(nv.getText(), e);
}
public static AbstractRutaAction createFilterTypeAction(List<ITypeExpression> types,
RutaBlock parent) {
return new FilterTypeAction(types);
}
public static AbstractRutaAction createAddRetainTypeAction(List<ITypeExpression> types,
RutaBlock env) {
return new AddRetainTypeAction(types);
}
public static AbstractRutaAction createRemoveRetainTypeAction(List<ITypeExpression> types,
RutaBlock env) {
return new RemoveRetainTypeAction(types);
}
public static AbstractRutaAction createAddFilterTypeAction(List<ITypeExpression> types,
RutaBlock env) {
return new AddFilterTypeAction(types);
}
public static AbstractRutaAction createRemoveFilterTypeAction(List<ITypeExpression> types,
RutaBlock env) {
return new RemoveFilterTypeAction(types);
}
public static AbstractRutaAction createSetFeatureAction(IStringExpression f, IRutaExpression v,
RutaBlock parent) {
return new SetFeatureAction(f, v);
}
public static AbstractRutaAction createUnmarkAction(ITypeExpression f,
List<INumberExpression> list, IBooleanExpression b, RutaBlock env) {
return new UnmarkAction(f, list, b);
}
public static AbstractRutaAction createUnmarkAllAction(ITypeExpression f, TypeListExpression list,
RutaBlock env) {
return new UnmarkAllAction(f, list);
}
public static AbstractRutaAction createComposedAction(List<AbstractRutaAction> actions,
RutaBlock env) {
return new ComposedAction(actions);
}
public static AbstractRutaAction createActionVariable(Token id) {
return new VariableAction(id.getText());
}
public static AbstractRutaAction createTransferAction(ITypeExpression f, RutaBlock env) {
return new TransferAction(f);
}
public static AbstractRutaAction createTrieAction(WordListExpression list,
Map<IStringExpression, IRutaExpression> map, IBooleanExpression ignoreCase,
INumberExpression ignoreLength, IBooleanExpression edit, INumberExpression distance,
IStringExpression ignoreChar, RutaBlock parent) {
return new TrieAction(list, map, ignoreCase, ignoreLength, edit, distance, ignoreChar);
}
public static AbstractRutaAction createExecAction(String ns, TypeListExpression tl,
IStringExpression view, RutaBlock env) {
return new ExecAction(ns, tl, view);
}
public static AbstractRutaAction createMarkTableAction(ITypeExpression structure,
INumberExpression index, WordTableExpression table,
Map<IStringExpression, INumberExpression> map, IBooleanExpression ignoreCase,
INumberExpression ignoreLength, IStringExpression ignoreChar,
INumberExpression maxIgnoreChar, RutaBlock env) {
return new MarkTableAction(structure, index, table, map, ignoreCase, ignoreLength, ignoreChar,
maxIgnoreChar);
}
@SuppressWarnings("rawtypes")
public static AbstractRutaAction createMergeAction(IBooleanExpression union, Token target,
List<ListExpression> list, RutaBlock env) {
return new MergeAction(union, target == null ? null : target.getText(), list);
}
public static AbstractRutaAction createGetAction(ListExpression<IRutaExpression> f, Token var,
IStringExpression op, RutaBlock env) {
return new GetAction(f, var == null ? null : var.getText(), op);
}
public static AbstractRutaAction createRemoveAction(Token var, List<IRutaExpression> list,
RutaBlock env) {
return new RemoveAction(var == null ? null : var.getText(), list);
}
public static AbstractRutaAction createAddAction(Token var, List<IRutaExpression> list,
RutaBlock env) {
return new AddAction(var == null ? null : var.getText(), list);
}
public static AbstractRutaAction createGetListAction(Token var, IStringExpression op,
RutaBlock env) {
return new GetListAction(var == null ? null : var.getText(), op);
}
public static AbstractRutaAction createRemoveDuplicateAction(Token var, RutaBlock env) {
return new RemoveDuplicateAction(var == null ? null : var.getText());
}
public static AbstractRutaAction createGetFeatureAction(IStringExpression f, Token var,
RutaBlock env) {
return new GetFeatureAction(f, var == null ? null : var.getText());
}
public static AbstractRutaAction createMatchedTextAction(Token var, List<INumberExpression> list,
RutaBlock env) {
return new MatchedTextAction(var == null ? null : var.getText(), list);
}
public static AbstractRutaAction createClearAction(Token var, RutaBlock env) {
return new ClearAction(var == null ? null : var.getText());
}
public static AbstractRutaAction createShiftAction(ITypeExpression type,
List<INumberExpression> list, RutaBlock env) {
return new ShiftAction(type, list);
}
public static AbstractRutaAction createDynamicAnchoringAction(IBooleanExpression active,
INumberExpression penalty, INumberExpression factor, RutaBlock env) {
return new DynamicAnchoringAction(active, penalty, factor);
}
public static AbstractRutaAction createTrimAction(List<ITypeExpression> types,
TypeListExpression typeList, RutaBlock env) {
return new TrimAction(types, typeList);
}
public static AbstractRutaAction createAction(FeatureMatchExpression fae) {
return new ImplicitFeatureAction(fae);
}
public static AbstractRutaAction createAction(ITypeExpression te) {
return new ImplicitMarkAction(te);
}
public static AbstractRutaAction createMarkFirstAction(ITypeExpression type, RutaBlock env) {
return new MarkFirstAction(type);
}
public static AbstractRutaAction createGreedyAnchoringAction(IBooleanExpression active,
IBooleanExpression active2, RutaBlock env) {
return new GreedyAnchoringAction(active, active2);
}
public static AbstractRutaAction createSplitAction(ITypeExpression type,
IBooleanExpression complete, IBooleanExpression appendToBegin,
IBooleanExpression appendToEnd, RutaBlock env) {
return new SplitAction(type, complete, appendToBegin, appendToEnd);
}
}