List of usage examples for org.springframework.util ClassUtils resolvePrimitiveIfNecessary
public static Class<?> resolvePrimitiveIfNecessary(Class<?> clazz)
From source file:org.jdal.swing.ListTableModel.java
/** * {@inheritDoc}/*ww w.j a va 2 s . c om*/ */ public Class<?> getColumnClass(int columnIndex) { Class clazz = Object.class; if (isCheckColum(columnIndex)) { clazz = Boolean.class; } else if (isPropertyColumn(columnIndex)) { if (pds.size() > 0) { clazz = pds.get(columnToPropertyIndex(columnIndex)).getPropertyType(); } } else if (isActionColumn(columnIndex)) { clazz = actions.get(columntoToActionIndex(columnIndex)).getClass(); } // JTable hangs if we return a primitive type here return ClassUtils.resolvePrimitiveIfNecessary(clazz); }
From source file:org.syncope.console.pages.panels.ResourceConnConfPanel.java
public ResourceConnConfPanel(final String id, final ResourceTO resourceTO, final boolean createFlag) { super(id);//from ww w . j ava2 s.c o m setOutputMarkupId(true); this.createFlag = createFlag; this.resourceTO = resourceTO; connConfProperties = getConnConfProperties(); connConfPropContainer = new WebMarkupContainer("connectorPropertiesContainer"); connConfPropContainer.setOutputMarkupId(true); add(connConfPropContainer); check = new IndicatingAjaxLink("check", new ResourceModel("check")) { private static final long serialVersionUID = -4199438518229098169L; @Override public void onClick(final AjaxRequestTarget target) { ConnInstanceTO connectorTO = connRestClient.read(resourceTO.getConnectorId()); connectorTO.setConfiguration( ConnConfPropUtils.joinConnInstanceProperties(connectorTO.getConfigurationMap(), ConnConfPropUtils.getConnConfPropertyMap(resourceTO.getConnConfProperties()))); if (connRestClient.check(connectorTO).booleanValue()) { info(getString("success_connection")); } else { error(getString("error_connection")); } target.add(((BaseModalPage) getPage()).getFeedbackPanel()); } }; check.setEnabled(!connConfProperties.isEmpty()); connConfPropContainer.add(check); /* * the list of overridable connector properties */ connConfPropContainer.add(new ListView<ConnConfProperty>("connectorProperties", new PropertyModel(this, "connConfProperties")) { private static final long serialVersionUID = 9101744072914090143L; @Override protected void populateItem(final ListItem<ConnConfProperty> item) { final ConnConfProperty property = item.getModelObject(); final Label label = new Label("connPropAttrSchema", property.getSchema().getDisplayName() == null || property.getSchema().getDisplayName().isEmpty() ? property.getSchema().getName() : property.getSchema().getDisplayName()); item.add(label); final FieldPanel field; boolean required = false; boolean isArray = false; if (GUARDED_STRING.equalsIgnoreCase(property.getSchema().getType()) || GUARDED_BYTE_ARRAY.equalsIgnoreCase(property.getSchema().getType())) { field = new AjaxPasswordFieldPanel("panel", label.getDefaultModelObjectAsString(), new Model(), true); ((PasswordTextField) field.getField()).setResetPassword(false); required = property.getSchema().isRequired(); } else { Class propertySchemaClass; try { propertySchemaClass = ClassUtils.forName(property.getSchema().getType(), ClassUtils.getDefaultClassLoader()); } catch (Exception e) { LOG.error("Error parsing attribute type", e); propertySchemaClass = String.class; } if (NUMBER.contains(propertySchemaClass)) { field = new AjaxNumberFieldPanel("panel", label.getDefaultModelObjectAsString(), new Model(), ClassUtils.resolvePrimitiveIfNecessary(propertySchemaClass), true); required = property.getSchema().isRequired(); } else if (Boolean.class.equals(propertySchemaClass) || boolean.class.equals(propertySchemaClass)) { field = new AjaxCheckBoxPanel("panel", label.getDefaultModelObjectAsString(), new Model(), true); } else { field = new AjaxTextFieldPanel("panel", label.getDefaultModelObjectAsString(), new Model(), true); required = property.getSchema().isRequired(); } if (String[].class.equals(propertySchemaClass)) { isArray = true; } } field.setTitle(property.getSchema().getHelpMessage()); if (isArray) { field.removeRequiredLabel(); if (property.getValues().isEmpty()) { property.getValues().add(null); } final MultiValueSelectorPanel multiFields = new MultiValueSelectorPanel<String>("panel", new PropertyModel<List<String>>(property, "values"), String.class, field, true); item.add(multiFields); } else { if (required) { field.addRequiredLabel(); } field.getField().add(new AjaxFormComponentUpdatingBehavior("onchange") { private static final long serialVersionUID = -1107858522700306810L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(getPage(), Broadcast.BREADTH, new ConnConfModEvent(target, connConfProperties)); } }); field.setNewModel(property.getValues()); item.add(field); } resourceTO.getConnConfProperties().add(property); } }); }
From source file:org.syncope.console.pages.ConnectorModalPage.java
public ConnectorModalPage(final PageReference callerPageRef, final ModalWindow window, final ConnInstanceTO connectorTO) { super();/*from w w w . ja v a 2s .c o m*/ selectedCapabilities = new ArrayList(connectorTO.getId() == 0 ? EnumSet.noneOf(ConnectorCapability.class) : connectorTO.getCapabilities()); final IModel<List<ConnectorCapability>> capabilities = new LoadableDetachableModel<List<ConnectorCapability>>() { private static final long serialVersionUID = 5275935387613157437L; @Override protected List<ConnectorCapability> load() { return Arrays.asList(ConnectorCapability.values()); } }; final IModel<List<ConnBundleTO>> bundles = new LoadableDetachableModel<List<ConnBundleTO>>() { private static final long serialVersionUID = 5275935387613157437L; @Override protected List<ConnBundleTO> load() { return restClient.getAllBundles(); } }; bundleTO = getSelectedBundleTO(bundles.getObject(), connectorTO); properties = getProperties(bundleTO, connectorTO); final AjaxTextFieldPanel connectorName = new AjaxTextFieldPanel("connectorName", "connector name", new PropertyModel<String>(connectorTO, "connectorName"), false); connectorName.setOutputMarkupId(true); connectorName.setEnabled(false); final AjaxTextFieldPanel displayName = new AjaxTextFieldPanel("displayName", "display name", new PropertyModel<String>(connectorTO, "displayName"), false); displayName.setOutputMarkupId(true); displayName.addRequiredLabel(); final AjaxTextFieldPanel version = new AjaxTextFieldPanel("version", "version", new PropertyModel<String>(connectorTO, "version"), false); displayName.setOutputMarkupId(true); version.setEnabled(false); final AjaxDropDownChoicePanel<ConnBundleTO> bundle = new AjaxDropDownChoicePanel<ConnBundleTO>("bundle", "bundle", new Model<ConnBundleTO>(bundleTO), false); bundle.setStyleShet("long_dynamicsize"); bundle.setChoices(bundles.getObject()); bundle.setChoiceRenderer(new ChoiceRenderer<ConnBundleTO>() { private static final long serialVersionUID = -1945543182376191187L; @Override public Object getDisplayValue(final ConnBundleTO object) { return object.getBundleName() + " " + object.getVersion(); } @Override public String getIdValue(final ConnBundleTO object, final int index) { // idValue must include version as well in order to cope // with multiple version of the same bundle. return object.getBundleName() + "#" + object.getVersion(); } }); ((DropDownChoice) bundle.getField()).setNullValid(true); bundle.setRequired(true); bundle.getField().add(new AjaxFormComponentUpdatingBehavior("onchange") { private static final long serialVersionUID = -1107858522700306810L; @Override protected void onUpdate(final AjaxRequestTarget target) { //reset all informations stored in connectorTO connectorTO.setConfiguration(new HashSet<ConnConfProperty>()); ((DropDownChoice) bundle.getField()).setNullValid(false); target.add(bundle.getField()); target.add(connectorName); target.add(version); target.add(propertiesContainer); } }); bundle.getField().setModel(new IModel<ConnBundleTO>() { private static final long serialVersionUID = -3736598995576061229L; @Override public ConnBundleTO getObject() { return bundleTO; } @Override public void setObject(final ConnBundleTO object) { if (object != null && connectorTO != null) { connectorTO.setBundleName(object.getBundleName()); connectorTO.setVersion(object.getVersion()); connectorTO.setConnectorName(object.getConnectorName()); properties = getProperties(object, connectorTO); bundleTO = object; } } @Override public void detach() { } }); bundle.addRequiredLabel(); bundle.setEnabled(connectorTO.getId() == 0); final ListView<ConnConfProperty> view = new ListView<ConnConfProperty>("connectorProperties", new PropertyModel(this, "properties")) { private static final long serialVersionUID = 9101744072914090143L; @Override protected void populateItem(final ListItem<ConnConfProperty> item) { final ConnConfProperty property = item.getModelObject(); final Label label = new Label("connPropAttrSchema", property.getSchema().getDisplayName() == null || property.getSchema().getDisplayName().isEmpty() ? property.getSchema().getName() : property.getSchema().getDisplayName()); item.add(label); final FieldPanel field; boolean required = false; boolean isArray = false; if (GUARDED_STRING.equalsIgnoreCase(property.getSchema().getType()) || GUARDED_BYTE_ARRAY.equalsIgnoreCase(property.getSchema().getType())) { field = new AjaxPasswordFieldPanel("panel", label.getDefaultModelObjectAsString(), new Model(), true); ((PasswordTextField) field.getField()).setResetPassword(false); required = property.getSchema().isRequired(); } else { Class propertySchemaClass; try { propertySchemaClass = ClassUtils.forName(property.getSchema().getType(), ClassUtils.getDefaultClassLoader()); } catch (Exception e) { LOG.error("Error parsing attribute type", e); propertySchemaClass = String.class; } if (NUMBER.contains(propertySchemaClass)) { field = new AjaxNumberFieldPanel("panel", label.getDefaultModelObjectAsString(), new Model(), ClassUtils.resolvePrimitiveIfNecessary(propertySchemaClass), true); required = property.getSchema().isRequired(); } else if (Boolean.class.equals(propertySchemaClass) || boolean.class.equals(propertySchemaClass)) { field = new AjaxCheckBoxPanel("panel", label.getDefaultModelObjectAsString(), new Model(), true); } else { field = new AjaxTextFieldPanel("panel", label.getDefaultModelObjectAsString(), new Model(), true); required = property.getSchema().isRequired(); } if (String[].class.equals(propertySchemaClass)) { isArray = true; } } field.setTitle(property.getSchema().getHelpMessage()); if (isArray) { field.removeRequiredLabel(); if (property.getValues().isEmpty()) { property.getValues().add(null); } item.add(new MultiValueSelectorPanel<String>("panel", new PropertyModel<List<String>>(property, "values"), String.class, field)); } else { if (required) { field.addRequiredLabel(); } field.setNewModel(property.getValues()); item.add(field); } final AjaxCheckBoxPanel overridable = new AjaxCheckBoxPanel("connPropAttrOverridable", "connPropAttrOverridable", new PropertyModel(property, "overridable"), true); item.add(overridable); connectorTO.getConfiguration().add(property); } }; final Form connectorForm = new Form("form"); connectorForm.setModel(new CompoundPropertyModel(connectorTO)); final Form connectorPropForm = new Form("connectorPropForm"); connectorPropForm.setModel(new CompoundPropertyModel(connectorTO)); connectorPropForm.setOutputMarkupId(true); propertiesContainer = new WebMarkupContainer("container"); propertiesContainer.setOutputMarkupId(true); propertiesContainer.add(connectorPropForm); connectorForm.add(propertiesContainer); connectorPropForm.add(view); final AjaxLink check = new IndicatingAjaxLink("check", new ResourceModel("check")) { private static final long serialVersionUID = -7978723352517770644L; @Override public void onClick(final AjaxRequestTarget target) { connectorTO.setBundleName(bundleTO.getBundleName()); connectorTO.setVersion(bundleTO.getVersion()); if (restClient.check(connectorTO).booleanValue()) { info(getString("success_connection")); } else { error(getString("error_connection")); } target.add(feedbackPanel); } }; connectorPropForm.add(check); final AjaxButton submit = new IndicatingAjaxButton("apply", new Model(getString("submit"))) { private static final long serialVersionUID = -958724007591692537L; @Override protected void onSubmit(final AjaxRequestTarget target, final Form form) { final ConnInstanceTO conn = (ConnInstanceTO) form.getDefaultModelObject(); conn.setBundleName(bundleTO.getBundleName()); // Set the model object's capabilites to // capabilitiesPalette's converted Set if (!selectedCapabilities.isEmpty()) { // exception if selectedCapabilities is empy conn.setCapabilities(EnumSet.copyOf(selectedCapabilities)); } else { conn.setCapabilities(EnumSet.noneOf(ConnectorCapability.class)); } try { if (connectorTO.getId() == 0) { restClient.create(conn); } else { restClient.update(conn); } ((Resources) callerPageRef.getPage()).setModalResult(true); window.close(target); } catch (SyncopeClientCompositeErrorException e) { error(getString("error") + ":" + e.getMessage()); target.add(feedbackPanel); ((Resources) callerPageRef.getPage()).setModalResult(false); LOG.error("While creating or updating connector {}", conn); } } @Override protected void onError(final AjaxRequestTarget target, final Form form) { target.add(feedbackPanel); } }; String roles = connectorTO.getId() == 0 ? xmlRolesReader.getAllAllowedRoles("Connectors", "create") : xmlRolesReader.getAllAllowedRoles("Connectors", "update"); MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, roles); connectorForm.add(connectorName); connectorForm.add(displayName); connectorForm.add(bundle); connectorForm.add(version); capabilitiesPalette = new CheckBoxMultipleChoice("capabilitiesPalette", new PropertyModel(this, "selectedCapabilities"), capabilities); connectorForm.add(capabilitiesPalette); connectorForm.add(submit); add(connectorForm); }
From source file:org.apache.syncope.client.console.pages.ReportletConfModalPage.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private FieldPanel buildSinglePanel(final Class<?> type, final String fieldName, final String id) { FieldPanel result = null;//w w w . j a v a 2s.co m PropertyModel model = new PropertyModel(ReportletConfModalPage.this.reportletConf, fieldName); if (ClassUtils.isAssignable(Boolean.class, type)) { result = new AjaxCheckBoxPanel(id, fieldName, model); } else if (ClassUtils.isAssignable(Number.class, type)) { result = new SpinnerFieldPanel<Number>(id, fieldName, (Class<Number>) ClassUtils.resolvePrimitiveIfNecessary(type), model, null, null); } else if (Date.class.equals(type)) { result = new DateTimeFieldPanel(id, fieldName, model, SyncopeConstants.DEFAULT_DATE_PATTERN); } else if (type.isEnum()) { result = new AjaxDropDownChoicePanel(id, fieldName, model) .setChoices(Arrays.asList(type.getEnumConstants())); } // treat as String if nothing matched above if (result == null) { result = new AjaxTextFieldPanel(id, fieldName, model); } return result; }
From source file:org.apache.syncope.client.console.panels.BeanPanel.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private FieldPanel buildSinglePanel(final Serializable bean, final Class<?> type, final String fieldName, final String id) { FieldPanel result = null;/*from w w w .ja v a 2 s . c o m*/ PropertyModel model = new PropertyModel(bean, fieldName); if (ClassUtils.isAssignable(Boolean.class, type)) { result = new AjaxCheckBoxPanel(id, fieldName, model); } else if (ClassUtils.isAssignable(Number.class, type)) { result = new AjaxSpinnerFieldPanel.Builder<>().build(id, fieldName, (Class<Number>) ClassUtils.resolvePrimitiveIfNecessary(type), model); } else if (Date.class.equals(type)) { result = new AjaxDateTimeFieldPanel(id, fieldName, model, SyncopeConstants.DEFAULT_DATE_PATTERN); } else if (type.isEnum()) { result = new AjaxDropDownChoicePanel(id, fieldName, model) .setChoices(Arrays.asList(type.getEnumConstants())); } // treat as String if nothing matched above if (result == null) { result = new AjaxTextFieldPanel(id, fieldName, model); } result.hideLabel(); return result; }
From source file:org.springframework.core.convert.support.GenericConversionService.java
private GenericConverter findConverterForClassPair(TypeDescriptor sourceType, TypeDescriptor targetType) { Class<?> sourceObjectType = sourceType.getObjectType(); if (sourceObjectType.isInterface()) { LinkedList<Class<?>> classQueue = new LinkedList<Class<?>>(); classQueue.addFirst(sourceObjectType); while (!classQueue.isEmpty()) { Class<?> currentClass = classQueue.removeLast(); if (logger.isTraceEnabled()) { logger.trace("Searching for converters indexed by sourceType [" + currentClass.getName() + "]"); }/*from ww w .j ava 2 s. c o m*/ Map<Class<?>, MatchableConverters> converters = getTargetConvertersForSource(currentClass); GenericConverter converter = getMatchingConverterForTarget(sourceType, targetType, converters); if (converter != null) { return converter; } Class<?>[] interfaces = currentClass.getInterfaces(); for (Class<?> ifc : interfaces) { classQueue.addFirst(ifc); } } Map<Class<?>, MatchableConverters> objectConverters = getTargetConvertersForSource(Object.class); return getMatchingConverterForTarget(sourceType, targetType, objectConverters); } else { LinkedList<Class<?>> classQueue = new LinkedList<Class<?>>(); classQueue.addFirst(sourceObjectType); while (!classQueue.isEmpty()) { Class<?> currentClass = classQueue.removeLast(); if (logger.isTraceEnabled()) { logger.trace("Searching for converters indexed by sourceType [" + currentClass.getName() + "]"); } Map<Class<?>, MatchableConverters> converters = getTargetConvertersForSource(currentClass); GenericConverter converter = getMatchingConverterForTarget(sourceType, targetType, converters); if (converter != null) { return converter; } if (currentClass.isArray()) { Class<?> componentType = ClassUtils .resolvePrimitiveIfNecessary(currentClass.getComponentType()); if (componentType.getSuperclass() != null) { classQueue.addFirst(Array.newInstance(componentType.getSuperclass(), 0).getClass()); } else if (componentType.isInterface()) { classQueue.addFirst(Object[].class); } } else { Class<?>[] interfaces = currentClass.getInterfaces(); for (Class<?> ifc : interfaces) { addInterfaceHierarchy(ifc, classQueue); } if (currentClass.getSuperclass() != null) { classQueue.addFirst(currentClass.getSuperclass()); } } } return null; } }
From source file:org.springframework.core.convert.support.GenericConversionService.java
private GenericConverter getMatchingConverterForTarget(TypeDescriptor sourceType, TypeDescriptor targetType, Map<Class<?>, MatchableConverters> converters) { Class<?> targetObjectType = targetType.getObjectType(); if (targetObjectType.isInterface()) { LinkedList<Class<?>> classQueue = new LinkedList<Class<?>>(); classQueue.addFirst(targetObjectType); while (!classQueue.isEmpty()) { Class<?> currentClass = classQueue.removeLast(); if (logger.isTraceEnabled()) { logger.trace("and indexed by targetType [" + currentClass.getName() + "]"); }//from w w w . j av a2 s .c o m MatchableConverters matchable = converters.get(currentClass); GenericConverter converter = matchConverter(matchable, sourceType, targetType); if (converter != null) { return converter; } Class<?>[] interfaces = currentClass.getInterfaces(); for (Class<?> ifc : interfaces) { classQueue.addFirst(ifc); } } if (logger.isTraceEnabled()) { logger.trace("and indexed by [java.lang.Object]"); } return matchConverter(converters.get(Object.class), sourceType, targetType); } else { LinkedList<Class<?>> classQueue = new LinkedList<Class<?>>(); classQueue.addFirst(targetObjectType); while (!classQueue.isEmpty()) { Class<?> currentClass = classQueue.removeLast(); if (logger.isTraceEnabled()) { logger.trace("and indexed by targetType [" + currentClass.getName() + "]"); } MatchableConverters matchable = converters.get(currentClass); GenericConverter converter = matchConverter(matchable, sourceType, targetType); if (converter != null) { return converter; } if (currentClass.isArray()) { Class<?> componentType = ClassUtils .resolvePrimitiveIfNecessary(currentClass.getComponentType()); if (componentType.getSuperclass() != null) { classQueue.addFirst(Array.newInstance(componentType.getSuperclass(), 0).getClass()); } else if (componentType.isInterface()) { classQueue.addFirst(Object[].class); } } else { Class<?>[] interfaces = currentClass.getInterfaces(); for (Class<?> ifc : interfaces) { addInterfaceHierarchy(ifc, classQueue); } if (currentClass.getSuperclass() != null) { classQueue.addFirst(currentClass.getSuperclass()); } } } return null; } }