package org.nocket.gen.page.element.synchronizer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import org.apache.wicket.model.LoadableDetachableModel; import org.nocket.gen.page.element.TableElement; // TODO: Auto-generated Javadoc /** * The Class GeneratedTableModel. */ public class GeneratedTableModel extends LoadableDetachableModel<List<?>> { /** The helper. */ private final SynchronizerHelper helper; /** * Instantiates a new generated table model. * * @param element the element */ public GeneratedTableModel(TableElement element) { this.helper = new SynchronizerHelper(element); } /* (non-Javadoc) * @see org.apache.wicket.model.LoadableDetachableModel#load() */ @Override protected List<?> load() { Object value = helper.invokeGetterMethod(); if (value == null) { return Collections.emptyList(); } else if (value instanceof Object[]) { return Arrays.asList((Object[]) value); } else if (value instanceof List) { return (List) value; } else if (value instanceof Collection) { return new ArrayList((Collection) value); } else { return Arrays.asList(value); } } }