| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /* $Id$ */ |
| |
| package org.apache.fop.fo.properties; |
| |
| import java.awt.Color; |
| import java.util.List; |
| |
| import org.apache.commons.logging.Log; |
| import org.apache.commons.logging.LogFactory; |
| |
| import org.apache.fop.apps.FOUserAgent; |
| import org.apache.fop.datatypes.Length; |
| import org.apache.fop.datatypes.Numeric; |
| import org.apache.fop.fo.Constants; |
| |
| /** |
| * Base class for all property objects |
| */ |
| public abstract class Property { |
| |
| /** Logger for all property classes */ |
| protected static final Log log = LogFactory.getLog(PropertyMaker.class); |
| |
| /** |
| * The original specified value for properties which inherit |
| * specified values. |
| */ |
| private String specVal; |
| |
| /** |
| * Set the original value specified for the property attribute. |
| * @param value The specified value. |
| */ |
| public void setSpecifiedValue(String value) { |
| this.specVal = value; |
| } |
| |
| /** |
| * Return the original value specified for the property attribute. |
| * @return The specified value as a String. |
| */ |
| public String getSpecifiedValue() { |
| return specVal; |
| } |
| |
| /* |
| * This section contains accessor functions for all possible Property datatypes |
| */ |
| |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return Length property value |
| */ |
| public Length getLength() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @param foUserAgent FOP user agent |
| * @return ColorType property value |
| */ |
| public Color getColor(FOUserAgent foUserAgent) { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return CondLength property value |
| */ |
| public CondLengthProperty getCondLength() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return LenghtRange property value |
| */ |
| public LengthRangeProperty getLengthRange() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return LengthPair property value |
| */ |
| public LengthPairProperty getLengthPair() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return Space property value |
| */ |
| public SpaceProperty getSpace() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return Keep property value |
| */ |
| public KeepProperty getKeep() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return integer equivalent of enumerated property value |
| */ |
| public int getEnum() { |
| return 0; |
| } |
| |
| /** @return true if the property is an enum and has value 'auto' */ |
| public boolean isAuto() { |
| return (getEnum() == Constants.EN_AUTO); |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return char property value |
| */ |
| public char getCharacter() { |
| return 0; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return collection of other property (sub-property) objects |
| */ |
| public List getList() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return Number property value |
| */ |
| public Number getNumber() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return Numeric property value |
| */ |
| public Numeric getNumeric() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return NCname property value |
| */ |
| public String getNCname() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses |
| * @return Object property value |
| */ |
| public Object getObject() { |
| return null; |
| } |
| |
| /** |
| * This method expects to be overridden by subclasses. |
| * @return String property value |
| */ |
| public String getString() { |
| return null; |
| } |
| |
| /** {@inheritDoc} */ |
| public String toString() { |
| Object obj = getObject(); |
| if (obj != this) { |
| return obj.toString(); |
| } |
| return ""; |
| } |
| } |