1bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount/* 2bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * Copyright (C) 2015 The Android Open Source Project 3bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * 4bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * Licensed under the Apache License, Version 2.0 (the "License"); 5bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * you may not use this file except in compliance with the License. 6bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * You may obtain a copy of the License at 7bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * 8bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * http://www.apache.org/licenses/LICENSE-2.0 9bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * 10bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * Unless required by applicable law or agreed to in writing, software 11bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * distributed under the License is distributed on an "AS IS" BASIS, 12bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * See the License for the specific language governing permissions and 14bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount * limitations under the License. 15bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount */ 16bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mountpackage android.databinding.testapp.adapter; 17bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount 18bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mountimport android.databinding.BindingConversion; 19bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mountimport java.util.ArrayList; 20bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mountimport java.util.LinkedList; 21bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mountimport java.util.List; 22bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount 23bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mountpublic class GenericConverter { 24bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount @BindingConversion 25bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount public static <T> String convertArrayList(ArrayList<T> values) { 26bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount return convert(values); 27bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount } 28bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount 29bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount @BindingConversion 30bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount public static String convertLinkedList(LinkedList<?> values) { 31bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount return convert(values); 32bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount } 33bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount 34bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount private static <T> String convert(List<T> values) { 35bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount if (values == null) { 36bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount return ""; 37bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount } 38bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount StringBuilder vals = new StringBuilder(); 39bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount for (T val : values) { 40bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount if (vals.length() != 0) { 41bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount vals.append(' '); 42bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount } 43bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount vals.append(val); 44bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount } 45bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount return vals.toString(); 46bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount } 47bd42d20f70b1f88e27e3b3c9c3a9c55ec155d128George Mount} 48