⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classdefinitionbuilder.java

📁 是高效开发JAVA的XML工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     *            僋儔僗
     *            Class
     * @return 僀儞僞乕僼僃乕僗柤
     *         Interface Name
     */
    private String getImplementation(IClass iClass) {
        StringBuffer buffer = new StringBuffer();
        IRealization[] realizations = iClass.getClientRealizations();
        for (int i = 0; i < realizations.length; i++) {
            IClass realization = realizations[i].getSupplier();
            buffer.append(getFullName(realization));
            if (i != realizations.length - 1) {
                buffer.append(", ");
            }
        }
        return buffer.toString();
    }

    /**
     * 宲彸偡傞僋儔僗柤傪庢摼偡傞丅
     * Get generalization class names.
     * @param iClass
     *            僋儔僗
     *            Class
     * @return 僋儔僗柤
     *         Class name
     */
    private String getSuperClass(IClass iClass) {
        StringBuffer buffer = new StringBuffer();
        IGeneralization[] generalizations = iClass.getGeneralizations();
        for (int i = 0; i < generalizations.length; i++) {
            IClass superClass = generalizations[i].getSuperType();
            buffer.append(getFullName(superClass));
            if (i != generalizations.length - 1) {
                buffer.append(", ");
            }
        }
        return buffer.toString();
    }

    /**
     * 僋儔僗偺柤慜傪僼儖僷僗偱庢摼偡傞丅
     * Get Class name as Full Path.
     * @param iClass
     *            僋儔僗
     *            Class
     * @return 僋儔僗柤乮僼儖僷僗乯
     *         Class Name (Full Path)
     */
    private String getFullName(IClass iClass) {
        StringBuffer sb = new StringBuffer();
        IElement owner = iClass.getOwner();
        while (owner != null && owner instanceof INamedElement && owner.getOwner() != null) {
            sb.insert(0, ((INamedElement) owner).getName() + "::");
            owner = owner.getOwner();
        }
        sb.append(iClass.getName());
        return sb.toString();
    }

    /**
     * 慡懏惈偺忣曬傪庢摼偡傞丅
     * Get all Attribute information.
     * @param iClass
     *            僋儔僗
     *            Class
     * @return 慡懏惈偺忣曬乮List偵奿擺偝傟偨String偺List乯
     *         All information of all attributes (String List stored in the list)
     */
    private List getAttributeLines(IClass iClass) {
        List lines = new ArrayList();
        IAttribute[] iAttributes = iClass.getAttributes();
        for (int i = 0; i < iAttributes.length; i++) {
            IAttribute iAttribute = iAttributes[i];
            lines.add(getAttributeLine(iAttribute));
        }
        return lines;
    }

    /**
     * 懏惈偺忣曬傪庢摼偡傞丅
     * Get Attribute information.
     * @param iAttribute
     *            懏惈
     *            Attribute
     * @return 懏惈偺忣曬乮String偺List乯
     *         Attribute information (String List)
     */
    private List getAttributeLine(IAttribute iAttribute) {
        List line = new ArrayList();
        line.add(EMPTY_COLUMN);
        line.add(getAttributeSignature(iAttribute));
        line.add(iAttribute.getDefinition());
        line.add(EMPTY_COLUMN);
        line.add(EMPTY_COLUMN);
        return line;
    }

    /**
     * 懏惈偺僔僌僱僠儍傪庢摼偡傞丅
     * Get attribute signature.
     * @param iAttribute
     *            懏惈
     *            Attribute
     * @return 懏惈偺僔僌僱僠儍
     *         Attribute signature
     */
    private String getAttributeSignature(IAttribute iAttribute) {
        String visibility = getVisibility(iAttribute);

        String name = iAttribute.getName();

        String type = iAttribute.getTypeExpression();

        String initValue = iAttribute.getInitialValue();
        if (initValue.length() > 0) {
            initValue = " = " + initValue;
        }

        IConstraint[] constraints = iAttribute.getConstraints();
        String constraint = "";
        for (int j = 0; j < constraints.length; j++) {
            constraint = constraint + "{" + constraints[j].getName() + "}";
        }

        return visibility + " " + name + " : " + type + initValue + constraint;
    }

    /**
     * 慡憖嶌偺忣曬傪庢摼偡傞丅
     * Get all operation information.
     * @param iClass
     *            僋儔僗
     *            Class
     * @return 慡憖嶌偺忣曬乮List偵奿擺偝傟偨String偺List乯
     *         All operation information (String list stored in the list)
     */
    private List getOperationLines(IClass iClass) {
        List lines = new ArrayList();
        IOperation[] iOperations = iClass.getOperations();
        for (int i = 0; i < iOperations.length; i++) {
            IOperation iOperation = iOperations[i];
            lines.add(getOperationLine(iOperation));
        }
        return lines;
    }

    /**
     * 憖嶌偺忣曬傪庢摼偡傞丅
     * Get operation information.
     * @param iOperation
     *            憖嶌
     *            Operation
     * @return 憖嶌偺忣曬乮String偺List乯
     *         Operation information (String List)
     */
    private List getOperationLine(IOperation iOperation) {
        List line = new ArrayList();
        line.add(EMPTY_COLUMN);
        line.add(getOperationSignature(iOperation));
        line.add(iOperation.getDefinition());
        line.add(EMPTY_COLUMN);
        line.add(EMPTY_COLUMN);
        return line;
    }

    /**
     * 憖嶌偺僔僌僱僠儍傪庢摼偡傞丅
     * Get operation signature.
     * @param iOperation
     *            憖嶌
     *            Operation
     * @return 憖嶌偺僔僌僱僠儍
     *         Operation signature
     */
    private String getOperationSignature(IOperation iOperation) {
        String param = "";

        IParameter[] parameters = iOperation.getParameters();
        for (int i = 0; i < parameters.length; i++) {
            String paramName = parameters[i].getName();
            String paramType = parameters[i].getTypeExpression();
            param = param + paramName + " : " + paramType;
            if (i != parameters.length - 1) {
                param += ", ";
            }
        }
        param = "(" + param + ")";

        IConstraint[] constraints = iOperation.getConstraints();
        String constraint = "";
        for (int i = 0; i < constraints.length; i++) {
            constraint = constraint + "{" + constraints[i].getName() + "}";
        }

        String visibility = getVisibility(iOperation);
        String name = iOperation.getName();
        String returnType = iOperation.getReturnTypeExpression();
        if (returnType.length() > 0) {
            return visibility + " " + name + param + " : " + returnType;
        } else {
            return visibility + " " + name + param;
        }
    }

    /**
     * 壜帇惈傪暥帤楍偱庢摼偡傞丅
     * Get visibility as string.
     * @param iNamedElement
     *            柤慜晅偒梫慺
     *            Named elements
     * @return 壜帇惈
     *         Visibility
     */
    private String getVisibility(INamedElement iNamedElement) {
        if (iNamedElement.isPackageVisibility()) {
            return "package";
        } else if (iNamedElement.isProtectedVisibility()) {
            return "protected";
        } else if (iNamedElement.isPrivateVisibility()) {
            return "private";
        } else if (iNamedElement.isPublicVisibility()) {
            return "public";
        }
        return "";
    }
}

⌨️ 快捷键说明

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