001// Copyright 2007, 2008 The Apache Software Foundation 002// 003// Licensed under the Apache License, Version 2.0 (the "License"); 004// you may not use this file except in compliance with the License. 005// You may obtain a copy of the License at 006// 007// http://www.apache.org/licenses/LICENSE-2.0 008// 009// Unless required by applicable law or agreed to in writing, software 010// distributed under the License is distributed on an "AS IS" BASIS, 011// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 012// See the License for the specific language governing permissions and 013// limitations under the License. 014 015package org.apache.tapestry5.upload.internal.services; 016 017import static org.apache.tapestry5.commons.util.CollectionFactory.newList; 018 019import java.util.List; 020 021/** 022 * Holds single or multivalued values. 023 */ 024public class ParameterValue 025{ 026 private final List<String> values = newList(); 027 028 public static final ParameterValue NULL = new ParameterValue() 029 { 030 @Override 031 public String single() 032 { 033 return null; 034 } 035 036 @Override 037 public String[] multi() 038 { 039 return null; 040 } 041 }; 042 043 public ParameterValue(String value) 044 { 045 values.add(value); 046 } 047 048 public ParameterValue(String... values) 049 { 050 for (String v : values) 051 { 052 add(v); 053 } 054 } 055 056 /** 057 * @return Single value of parameter (or first value if there are multiple values) 058 */ 059 public String single() 060 { 061 return values.get(0); 062 } 063 064 /** 065 * @return All values of parameter 066 */ 067 public String[] multi() 068 { 069 return values.toArray(new String[values.size()]); 070 } 071 072 public void add(String value) 073 { 074 values.add(value); 075 } 076 077 public boolean isMulti() 078 { 079 return values.size() > 1; 080 } 081}