compositebuilder.java

来自「Java的面向对象数据库系统的源代码」· Java 代码 · 共 79 行

JAVA
79
字号
// You can redistribute this software and/or modify it under the terms of// the Ozone Library License version 1 published by ozone-db.org.//// The original code and portions created by SMB are// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.//// $Id$package org.ozoneDB.tools.OPP.srcgen.builder;import org.ozoneDB.tools.OPP.srcgen.ClassBuilder;import org.ozoneDB.tools.OPP.srcgen.BuilderException;import org.ozoneDB.tools.OPP.message.MessageWriter;import org.ozoneDB.tools.OPP.message.ForkMessageWriter;import java.util.Set;import java.util.HashSet;import java.util.Iterator;/** * The composite builder allows building multiple structures in parallel from a single * source of direction. * @author Joakim Ohlrogge */public class CompositeBuilder implements ClassBuilder {    private Set builders;    public void init(MessageWriter msgWriter) {        // initialized all sub builders with a fork msg writer.        // The Fork writer makes sure all messages are grouped by sub builder.        for (Iterator iter = builders.iterator(); iter.hasNext();) {            ((ClassBuilder) iter.next()).init(new ForkMessageWriter(msgWriter));        }    }    public void beginClass(int modifier, String fullName, String superClass, String interfaces[]) throws BuilderException {        for (Iterator iter = builders.iterator(); iter.hasNext();) {            ((ClassBuilder) iter.next()).beginClass(modifier, fullName, superClass, interfaces);        }    }    public void makeConstructor(int modifier, ClassBuilder.Parameter parameters[], String exceptions[]) throws BuilderException {        for (Iterator iter = builders.iterator(); iter.hasNext();) {            ((ClassBuilder) iter.next()).makeConstructor(modifier, parameters, exceptions);        }    }    public void makeMethod(int modifier, String name, ClassBuilder.Parameter parameters[], String returnType, String exceptions[], int lockLevel) throws BuilderException {        for (Iterator iter = builders.iterator(); iter.hasNext();) {            ((ClassBuilder) iter.next()).makeMethod(modifier, name, parameters, returnType, exceptions, lockLevel);        }    }    public void endClass() throws BuilderException {        for (Iterator iter = builders.iterator(); iter.hasNext();) {            ((ClassBuilder) iter.next()).endClass();        }    }    public CompositeBuilder() {        this.builders = new HashSet();    }    /**     * Adds a builder to the composition     * @param builder The builder to add     */    public void addBuilder(ClassBuilder builder) {        builders.add(builder);    }    /**     * Removes a builder from the composition     * @param builder     */    public void removeBuilder(ClassBuilder builder) {        builders.remove(builder);    }}

⌨️ 快捷键说明

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