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:
018: package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
019:
020: import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
021: import org.apache.cocoon.components.elementprocessor.types.Validator;
022:
023: import java.io.IOException;
024:
025: /**
026: * Horizontal alignment is written as an integer, and each bit in the
027: * integer specifies a particular boolean attribute. This class deals
028: * with all that information in an easily digested form.
029: *
030: * @author Marc Johnson (marc_johnson27591@hotmail.com)
031: * @version CVS $Id: HorizontalAlignment.java 433543 2006-08-22 06:22:54Z crossley $
032: */
033: public class HorizontalAlignment {
034: private int _alignment;
035: private static final int _general = 1;
036: private static final int _left = 2;
037: private static final int _right = 4;
038: private static final int _center = 8;
039: private static final int _fill = 16;
040: private static final int _justify = 32;
041: private static final int _center_across_selection = 64;
042: private static final Validator _validator = new Validator() {
043: public IOException validate(final Number number) {
044: int value = number.intValue();
045:
046: return ((value >= 0) && (value <= 127)) ? null
047: : new IOException("\"" + number
048: + "\" is out of range");
049: }
050: };
051:
052: /**
053: * Create an HorizontalAlignment object
054: * @param value the string containing the horizontal alignment data
055: * @exception IOException if the data is malformed
056: */
057: public HorizontalAlignment(final String value) throws IOException {
058: _alignment = NumericConverter.extractInteger(value, _validator)
059: .intValue();
060: }
061:
062: /**
063: * @return true if general bit is set
064: */
065: public boolean isGeneral() {
066: return (_alignment & _general) == _general;
067: }
068:
069: /**
070: * @return true if left bit is set
071: */
072: public boolean isLeft() {
073: return (_alignment & _left) == _left;
074: }
075:
076: /**
077: * @return true if right bit is set
078: */
079: public boolean isRight() {
080: return (_alignment & _right) == _right;
081: }
082:
083: /**
084: * @return true if center bit is set
085: */
086: public boolean isCenter() {
087: return (_alignment & _center) == _center;
088: }
089:
090: /**
091: * @return true if fill bit is set
092: */
093: public boolean isFill() {
094: return (_alignment & _fill) == _fill;
095: }
096:
097: /**
098: * @return true if justify bit is set
099: */
100: public boolean isJustify() {
101: return (_alignment & _justify) == _justify;
102: }
103:
104: /**
105: * @return true if center across selection bit is set
106: */
107: public boolean isCenterAcrossSelection() {
108: return (_alignment & _center_across_selection) == _center_across_selection;
109: }
110:
111: short getCode() {
112: return (short) _alignment;
113: }
114: } // end public class HorizontalAlignment
|