/* * Copyright 2010 Red Hat, Inc. and/or its affiliates. * * 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.eclipse.core; import org.eclipse.core.resources.IFile; /** * This represents a drools model element. It is linked to its direct * parents and its children. If relevant, Drools model elements refer * to the file they are defined in and the offset and length of that * element in the file. */ public abstract class DroolsElement { public static final int RULESET = 0; public static final int PACKAGE = 1; public static final int RULE = 2; public static final int QUERY = 3; public static final int FUNCTION = 4; public static final int TEMPLATE = 5; public static final int EXPANDER = 6; public static final int GLOBAL = 7; public static final int IMPORT = 8; public static final int RULE_ATTRIBUTE = 9; public static final int PROCESS = 10; public static final int DEFAULT_RULE_GROUP = 11; public static final int ACTIVATION_GROUP = 12; public static final int AGENDA_GROUP = 13; public static final int RULEFLOW_GROUP = 14; protected static final DroolsElement[] NO_ELEMENTS = new DroolsElement[0]; private DroolsElement parent; private IFile file; private int offset; private int length; protected DroolsElement(DroolsElement parent) { this.parent = parent; } public abstract int getType(); public DroolsElement getParent() { return parent; } public abstract DroolsElement[] getChildren(); public IFile getFile() { return file; } public int getOffset() { return offset; } public int getLength() { return length; } // These are helper methods for creating the model and should not // be used directly. Use DroolsModelBuilder instead. void setFile(IFile file, int offset, int length) { this.file = file; this.offset = offset; this.length = length; } }