/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2001 - 2013 Object Refinery Ltd, Pentaho Corporation and Contributors.. All rights reserved.
*/
package org.pentaho.reporting.engine.classic.core.style;
import org.pentaho.reporting.engine.classic.core.util.ObjectStreamResolveException;
import java.io.ObjectStreamException;
import java.io.Serializable;
/**
* Creation-Date: 24.11.2005, 17:08:01
*
* @author Thomas Morgner
*/
public class VerticalTextAlign implements Serializable {
public static final VerticalTextAlign USE_SCRIPT = new VerticalTextAlign( "use-script" );
public static final VerticalTextAlign BASELINE = new VerticalTextAlign( "baseline" );
public static final VerticalTextAlign SUB = new VerticalTextAlign( "sub" );
public static final VerticalTextAlign SUPER = new VerticalTextAlign( "super" );
public static final VerticalTextAlign TOP = new VerticalTextAlign( "top" );
public static final VerticalTextAlign TEXT_TOP = new VerticalTextAlign( "text-top" );
public static final VerticalTextAlign CENTRAL = new VerticalTextAlign( "central" );
public static final VerticalTextAlign MIDDLE = new VerticalTextAlign( "middle" );
public static final VerticalTextAlign BOTTOM = new VerticalTextAlign( "bottom" );
public static final VerticalTextAlign TEXT_BOTTOM = new VerticalTextAlign( "text-bottom" );
private String id;
private VerticalTextAlign( final String id ) {
this.id = id;
}
/**
* Replaces the automatically generated instance with one of the enumeration instances.
*
* @return the resolved element
* @throws java.io.ObjectStreamException
* if the element could not be resolved.
*/
protected Object readResolve() throws ObjectStreamException {
if ( this.id.equals( VerticalTextAlign.USE_SCRIPT.id ) ) {
return VerticalTextAlign.USE_SCRIPT;
}
if ( this.id.equals( VerticalTextAlign.BASELINE.id ) ) {
return VerticalTextAlign.BASELINE;
}
if ( this.id.equals( VerticalTextAlign.SUPER.id ) ) {
return VerticalTextAlign.SUPER;
}
if ( this.id.equals( VerticalTextAlign.SUB.id ) ) {
return VerticalTextAlign.SUB;
}
if ( this.id.equals( VerticalTextAlign.TOP.id ) ) {
return VerticalTextAlign.TOP;
}
if ( this.id.equals( VerticalTextAlign.TEXT_TOP.id ) ) {
return VerticalTextAlign.TEXT_TOP;
}
if ( this.id.equals( VerticalTextAlign.BOTTOM.id ) ) {
return VerticalTextAlign.BOTTOM;
}
if ( this.id.equals( VerticalTextAlign.TEXT_BOTTOM.id ) ) {
return VerticalTextAlign.TEXT_BOTTOM;
}
if ( this.id.equals( VerticalTextAlign.CENTRAL.id ) ) {
return VerticalTextAlign.CENTRAL;
}
if ( this.id.equals( VerticalTextAlign.MIDDLE.id ) ) {
return VerticalTextAlign.MIDDLE;
}
// unknown element alignment...
throw new ObjectStreamResolveException();
}
public static VerticalTextAlign valueOf( String id ) {
if ( id == null ) {
return null;
}
if ( id.equals( VerticalTextAlign.USE_SCRIPT.id ) ) {
return VerticalTextAlign.USE_SCRIPT;
}
if ( id.equals( VerticalTextAlign.BASELINE.id ) ) {
return VerticalTextAlign.BASELINE;
}
if ( id.equals( VerticalTextAlign.SUPER.id ) ) {
return VerticalTextAlign.SUPER;
}
if ( id.equals( VerticalTextAlign.SUB.id ) ) {
return VerticalTextAlign.SUB;
}
if ( id.equals( VerticalTextAlign.TOP.id ) ) {
return VerticalTextAlign.TOP;
}
if ( id.equals( VerticalTextAlign.TEXT_TOP.id ) ) {
return VerticalTextAlign.TEXT_TOP;
}
if ( id.equals( VerticalTextAlign.BOTTOM.id ) ) {
return VerticalTextAlign.BOTTOM;
}
if ( id.equals( VerticalTextAlign.TEXT_BOTTOM.id ) ) {
return VerticalTextAlign.TEXT_BOTTOM;
}
if ( id.equals( VerticalTextAlign.CENTRAL.id ) ) {
return VerticalTextAlign.CENTRAL;
}
if ( id.equals( VerticalTextAlign.MIDDLE.id ) ) {
return VerticalTextAlign.MIDDLE;
}
return null;
}
public boolean equals( final Object o ) {
if ( this == o ) {
return true;
}
if ( o == null || getClass() != o.getClass() ) {
return false;
}
final VerticalTextAlign that = (VerticalTextAlign) o;
if ( !id.equals( that.id ) ) {
return false;
}
return true;
}
public int hashCode() {
return id.hashCode();
}
/**
* Returns a string representation of the object. In general, the <code>toString</code> method returns a string that
* "textually represents" this object. The result should be a concise but informative representation that is easy for
* a person to read. It is recommended that all subclasses override this method.
* <p/>
* The <code>toString</code> method for class <code>Object</code> returns a string consisting of the name of the class
* of which the object is an instance, the at-sign character `<code>@</code>', and the unsigned hexadecimal
* representation of the hash code of the object. In other words, this method returns a string equal to the value of:
* <blockquote>
*
* <pre>
* getClass().getName() + '@' + Integer.toHexString( hashCode() )
* </pre>
*
* </blockquote>
*
* @return a string representation of the object.
*/
public String toString() {
return id;
}
}