001: /*
002: * $Id: ContainerInfo.java 462305 2006-09-18 05:25:07Z ehillenius $ $Revision:
003: * 1.19 $ $Date: 2006-09-18 07:25:07 +0200 (Mon, 18 Sep 2006) $
004: *
005: * ==============================================================================
006: * Licensed under the Apache License, Version 2.0 (the "License"); you may not
007: * use this file except in compliance with the License. You may obtain a copy of
008: * the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing, software
013: * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
014: * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
015: * License for the specific language governing permissions and limitations under
016: * the License.
017: */
018: package wicket.markup;
019:
020: import java.util.Locale;
021:
022: import wicket.MarkupContainer;
023:
024: /**
025: * Because a Component has reference to its parents, which eventually is the
026: * Page, and because the Page contains a reference to the Session, keeping a
027: * "copy" of a component is very expensive. ContainerInfo shall be used instead
028: * of MarkupContainer whenever a small subset of the container's information is
029: * required.
030: *
031: * @author Juergen Donnerstag
032: */
033: public class ContainerInfo {
034: private final Class containerClass;
035: private final Locale locale;
036: private final String style;
037: private final String variation;
038: private final String fileExtension;
039:
040: /**
041: * Construct.
042: *
043: * @param container
044: * The container to create the information from
045: */
046: public ContainerInfo(final MarkupContainer container) {
047: this .containerClass = container.getClass();
048: this .locale = container.getLocale();
049: this .style = container.getStyle();
050: this .variation = null;
051: this .fileExtension = container.getMarkupType();
052: }
053:
054: /**
055: *
056: * @return The container class
057: */
058: public Class getContainerClass() {
059: return containerClass;
060: }
061:
062: /**
063: *
064: * @return The container markup type (== file extension)
065: */
066: public String getFileExtension() {
067: return fileExtension;
068: }
069:
070: /**
071: *
072: * @return The container locale
073: */
074: public Locale getLocale() {
075: return locale;
076: }
077:
078: /**
079: *
080: * @return The container style
081: */
082: public String getStyle() {
083: return style;
084: }
085:
086: /**
087: *
088: * @return The containers variation
089: */
090: public String getVariation() {
091: return variation;
092: }
093:
094: /**
095: *
096: * @see java.lang.Object#toString()
097: */
098: public String toString() {
099: return containerClass.getName() + ":" + locale + ":" + style
100: + ":" + fileExtension;
101: }
102: }
|