All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.jangaroo.jooc.mxml.ast.XmlAttribute Maven / Gradle / Ivy

The newest version!
package net.jangaroo.jooc.mxml.ast;

import net.jangaroo.jooc.JooSymbol;
import net.jangaroo.jooc.Scope;
import net.jangaroo.jooc.ast.AstNode;
import net.jangaroo.jooc.ast.AstVisitor;
import net.jangaroo.jooc.ast.Ide;
import net.jangaroo.jooc.ast.NamespacedIde;
import net.jangaroo.jooc.ast.NodeImplBase;
import org.w3c.dom.Node;

import java.io.IOException;
import java.util.Collections;
import java.util.List;

public class XmlAttribute extends NodeImplBase {

  private final Ide ide;
  private final JooSymbol eq;
  private final JooSymbol value;

  public XmlAttribute(Ide ide, JooSymbol eq, JooSymbol value) {
    this.ide = ide;
    this.eq = eq;
    this.value = value;
  }

  @Override
  public JooSymbol getSymbol() {
    return ide.getSymbol();
  }

  public JooSymbol getValue() {
    return value;
  }

  @Override
  public List getChildren() {
    return Collections.emptyList();
  }

  @Override
  public void scope(Scope scope) {
    
  }

  @Override
  public void analyze(AstNode parentNode) {

  }

  @Override
  public AstNode getParentNode() {
    return null;
  }

  @Override
  public void visit(AstVisitor visitor) throws IOException {
    
  }

  public String getLocalName() {
    return ide.getIde().getText();
  }

  /**
   * @see Node#getPrefix()
   */
  public String getPrefix() {
    if(ide instanceof NamespacedIde) {
      return ((NamespacedIde) ide).getNamespace().getName();
    }
    return null;
  }

  @Override
  public String toString() {
    StringBuilder builder = new StringBuilder();
    if (ide instanceof NamespacedIde) {
      builder.append(((NamespacedIde)ide).getNamespace().getSymbol().getSourceCode())
              .append(((NamespacedIde)ide).getSymNamespaceSep().getSourceCode());
    }
    builder.append(ide.getIde().getSourceCode()).append(eq.getSourceCode()).append(value.getSourceCode());
    return builder.toString();
  }

  boolean isNamespaceDefinition() {
    String namespacePrefix = getPrefix();
    return XmlTag.XMLNS.equals(namespacePrefix) || null == namespacePrefix && XmlTag.XMLNS.equals(getLocalName());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy