001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of 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,
013     * software distributed under the License is distributed on an
014     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     * KIND, either express or implied.  See the License for the
016     * specific language governing permissions and limitations
017     * under the License.
018     */
019    
020    package org.apache.myfaces.tobago.layout;
021    
022    import org.apache.commons.logging.Log;
023    import org.apache.commons.logging.LogFactory;
024    
025    public final class PixelMeasure extends Measure {
026    
027      private static final Log LOG = LogFactory.getLog(PixelMeasure.class);
028    
029      private static final PixelMeasure NULL = new PixelMeasure(0);
030    
031      private final int pixel;
032    
033      public PixelMeasure(int pixel) {
034        this.pixel = pixel;
035      }
036    
037      public Measure add(Measure m) {
038        return new PixelMeasure(pixel + m.getPixel());
039      }
040    
041      public Measure subtractNotNegative(Measure m) {
042        if (m.getPixel() > pixel) {
043          LOG.warn("Not enough space! value=" + pixel);
044          return NULL;
045        } else {
046          return new PixelMeasure(pixel + m.getPixel());
047        }
048      }
049    
050      @Deprecated
051      public Measure substractNotNegative(Measure m) {
052        return subtractNotNegative(m);
053      }
054    
055      public int getPixel() {
056        return pixel;
057      }
058    
059      @Override
060      public String toString() {
061        return pixel + "px";
062      }
063    
064    }