001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.wicket.markup;
018:
019: /**
020: * This class is for framework purposes only, which is why the class is
021: * (default) protected.
022: * <p>
023: * A RawMarkup element represents a hunk of unparsed HTML containing any
024: * arbitrary content.
025: *
026: * @see MarkupElement
027: * @author Jonathan Locke
028: */
029: public final class RawMarkup extends MarkupElement {
030: /** The raw markup string * */
031: private final CharSequence string;
032:
033: /**
034: * Create a RawMarkup element referencing an uninterpreted markup string.
035: *
036: * @param string
037: * The raw markup
038: */
039: public RawMarkup(final CharSequence string) {
040: this .string = string;
041: }
042:
043: /**
044: * Compare with a given object
045: *
046: * @param o
047: * The object to compare with
048: * @return True if equal
049: */
050: public boolean equals(final Object o) {
051: if (o instanceof String) {
052: return string.equals(o);
053: }
054:
055: if (o instanceof RawMarkup) {
056: return string.equals(((RawMarkup) o).string);
057: }
058:
059: return false;
060: }
061:
062: /**
063: * @see org.apache.wicket.markup.MarkupElement#equalTo(org.apache.wicket.markup.MarkupElement)
064: */
065: public boolean equalTo(final MarkupElement element) {
066: if (element instanceof RawMarkup) {
067: return toString().equals(element.toString());
068: }
069: return false;
070: }
071:
072: /**
073: * We must override hashCode since we overrode equals.
074: *
075: * @return Hashcode for this object
076: */
077: public int hashCode() {
078: return string.hashCode();
079: }
080:
081: /**
082: * @see org.apache.wicket.markup.MarkupElement#toCharSequence()
083: */
084: public CharSequence toCharSequence() {
085: return string;
086: }
087:
088: /**
089: * @return This raw markup string
090: */
091: public String toString() {
092: return string.toString();
093: }
094:
095: /**
096: * @see MarkupElement#toUserDebugString()
097: */
098: public String toUserDebugString() {
099: return "[Raw markup]";
100: }
101: }
|