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