visitorstruct.java

来自「一个java 代码生成器」· Java 代码 · 共 118 行

JAVA
118
字号
/**
 * Copyright (c) 2002, Siddhartha P. Chandurkar siddhartha@visioncodified.com
 * All rights reserved.
 * Licensed under the Academic Free License version 1.1
 * See the file LICENSE.TXT for details.
 * LICENSE.txt is located in the directory  <install-directory>\Jenerator
 * of your Jenertaor Installation.
 *
 */
package com.jenerator.struct.pattern;

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

/**
 * VisitorStruct
 *
 * @author Siddhartha P. Chandurkar
 * @version 0.9.0
 */
public class VisitorStruct extends PatternStruct {


    //ATTRIBUTES
    private String abstractVisitorName;
    private Vector concreteVisitors;
    private String abstractElementName;
    private Hashtable concreteElements;


    //CONSTRUCTORS
    public VisitorStruct() {
        concreteVisitors = new Vector();
        concreteElements = new Hashtable();
    }

    //METHODS
    public String getAbstractVisitorName() {
        return abstractVisitorName;
    }

    public void setAbstractVisitorName(String abstractVisitorName) {
        this.abstractVisitorName = abstractVisitorName;
    }

    public Vector getConcreteVisitors() {
        return concreteVisitors;
    }

    public void setConcreteVisitors(Vector concreteVisitors) {
        this.concreteVisitors = concreteVisitors;
    }

    public void addConcreteVisitor(String concreteVisitor) {
        this.concreteVisitors.addElement(concreteVisitor);
    }

    public String getAbstractElementName() {
        return abstractElementName;
    }

    public void setAbstractElementName(String abstractElementName) {
        this.abstractElementName = abstractElementName;
    }

    public Hashtable getConcreteElements() {
        return concreteElements;
    }

    public void setConcreteElements(Hashtable concreteElements) {
        this.concreteElements = concreteElements;
    }

    public void addConcreteElement(String concreteElementName, String concreteOperation) {
        this.concreteElements.put(concreteElementName, concreteOperation);
    }

    public String toXml() {
        StringBuffer xmlBuffer = new StringBuffer();
        xmlBuffer.append("<package>" + packageName + "</package>");
        xmlBuffer.append("<abstract-visitor-name>" + abstractVisitorName + "</abstract-visitor-name>");
        Vector concreteVisitorNames = concreteVisitors;
        if (concreteVisitorNames.size() > 0) {
            xmlBuffer.append("<concrete-visitors>");
            for (int i = 0; i < concreteVisitorNames.size(); i++) {
                xmlBuffer.append("<concrete-visitor-name>");
                xmlBuffer.append(concreteVisitorNames.elementAt(i));
                xmlBuffer.append("</concrete-visitor-name>");
            }
            xmlBuffer.append("</concrete-visitors>");
        }
        xmlBuffer.append("<abstract-element-name>" + abstractElementName + "</abstract-element-name>");
        Hashtable concreteElem = concreteElements;
        if (!concreteElem.isEmpty()) {
            Enumeration keys = concreteElem.keys();

            xmlBuffer.append("<concrete-elements>");
            while (keys.hasMoreElements()) {
                String concreteElementName = keys.nextElement().toString();
                String elementOperation = concreteElem.get(concreteElementName).toString();
                xmlBuffer.append("<concrete-element>");
                xmlBuffer.append("<concrete-element-name>");
                xmlBuffer.append(concreteElementName.toString());
                xmlBuffer.append("</concrete-element-name>");
                xmlBuffer.append("<element-operation-name>");
                xmlBuffer.append(elementOperation.toString());
                xmlBuffer.append("</element-operation-name>");
                xmlBuffer.append("</concrete-element>");
            }
            xmlBuffer.append("</concrete-elements>");
        }
        xmlBuffer.append("</pattern>");
        return xmlBuffer.toString();

    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?