View Javadoc

1   /*
2    * Copyright 2004-2008 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.seasar.uruma.rcp.configuration.elements;
17  
18  import java.io.Writer;
19  
20  import org.seasar.uruma.rcp.UrumaService;
21  import org.seasar.uruma.rcp.configuration.ConfigurationElement;
22  import org.seasar.uruma.rcp.configuration.ConfigurationWriter;
23  import org.seasar.uruma.rcp.configuration.ConfigurationWriterFactory;
24  import org.seasar.uruma.rcp.util.UrumaServiceUtil;
25  import org.seasar.uruma.util.AssertionUtil;
26  
27  /**
28   * {@link ConfigurationElement} のための基底クラスです。<br />
29   * 
30   * @author y-komori
31   */
32  public abstract class AbstractConfigurationElement implements
33          ConfigurationElement {
34      protected int level;
35  
36      protected ConfigurationWriter configurationWriter;
37  
38      /**
39       * {@link AbstractConfigurationElement} を構築します。<br />
40       */
41      public AbstractConfigurationElement() {
42          ConfigurationWriter writer = ConfigurationWriterFactory
43                  .getConfigurationWriter(getClass());
44          setConfigurationWriter(writer);
45      }
46  
47      /*
48       * @see org.seasar.uruma.rcp.configuration.ConfigurationElement#setConfigurationWriter(org.seasar.uruma.rcp.configuration.ConfigurationWriter)
49       */
50      public void setConfigurationWriter(final ConfigurationWriter writer) {
51          AssertionUtil.assertNotNull("writer", writer);
52          this.configurationWriter = writer;
53      }
54  
55      /*
56       * @see org.seasar.uruma.rcp.configuration.ConfigurationElement#writeConfiguration(java.io.Writer)
57       */
58      public void writeConfiguration(final Writer writer) {
59          if (configurationWriter != null) {
60              configurationWriter.writeStartTag(this, writer, level);
61              configurationWriter.writeEndTag(this, writer, level);
62          }
63      }
64  
65      /*
66       * @see org.seasar.uruma.rcp.configuration.ConfigurationElement#setLevel(int)
67       */
68      public void setLevel(final int level) {
69          this.level = level;
70      }
71  
72      /**
73       * <code>id</code> を RCP 上の ID に変換します。<br />
74       * 
75       * @param id
76       *            変換対象ID
77       * @return RCP上のID
78       * @see UrumaService#createRcpId(String)
79       */
80      protected String createRcpId(final String id) {
81          return UrumaServiceUtil.getService().createRcpId(id);
82      }
83  
84      /**
85       * プラグイン ID を返します。<br />
86       * 
87       * @return プラグイン ID
88       */
89      protected String getPluginId() {
90          return UrumaServiceUtil.getService().getPluginId();
91      }
92  }