/* * * 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.flex.compiler.tree.mxml; /** * This type of AST node represents tags inside an MXML * <code><Model></code> tag that contain other tags. * <p> * It is the superinterface for {@link IMXMLModelRootNode} and * {@link IMXMLModelPropertyNode}. */ public interface IMXMLModelPropertyContainerNode extends IMXMLNode { static final int NO_INDEX = -1; /** * The property-node children of this node. * * @return An array of {@link IMXMLModelPropertyNode} objects. */ IMXMLModelPropertyNode[] getPropertyNodes(); /** * The names of the properties to be set on this node. * * @return The names of the properties as an array of Strings. If this node * has more than one child {@link IMXMLModelPropertyNode} with the same * name, the property name appears only once in this array. */ String[] getPropertyNames(); /** * The child property nodes with a specified property name. * * @param propertyName A property name. * @return An array of {@link IMXMLModelPropertyNode} objects. This will * often be a single-element array, but there will be multiple elements if * this node has more than one child {@link IMXMLModelPropertyNode} with the * same name. */ IMXMLModelPropertyNode[] getPropertyNodes(String propertyName); /** * If this node has the same name as a sibling, then this field stores that * it is the i'th one, in attribute-then-child-tag order. If it is the only * one, its index is {@code IMXMLModelPropertyContainerNode.NO_INDEX}. * * @return The index as an <code>int</code>. */ int getIndex(); }