protected ValueDefinition readEntryKey(BeanContainer container, XmlReader reader, LoaderContext context) { String key = reader.getAttribute(KEY_ATTRIBUTE); String keyRef = reader.getAttribute(KEY_REF_ATTRIBUTE); if (Strings.isAllEmpty(key, keyRef)) { throw new BeanDefinitionException("'key' or 'key-ref' must be defined in element '" + reader.getElementLocalName() + "', source : " + reader.getSource()); } if (!Strings.isEmpty(key)) { return resolvedString(key); } else { return beanReference(context, keyRef); } }
protected ValueDefinition readRefElement(LoaderContext context, XmlReader reader) { String refId = reader.resolveAttribute(ID_ATTRIBUTE); String refType = reader.resolveAttribute(TYPE_ATTRIBUTE); String refName = reader.resolveAttribute(NAME_ATTRIBUTE); if (Strings.isAllEmpty(refId, refType, refName)) { throw new BeanDefinitionException("Invalid bean reference in '" + reader.getCurrentLocation() + "'"); } if (Strings.isNotEmpty(refName) && Strings.isEmpty(refType)) { throw new BeanDefinitionException("The referenced type must be exists in '" + reader.getCurrentLocation() + "'"); } return tryCreateBeanReference(context, reader, refId, refType, refName); }
protected ValueDefinition tryCreateBeanReference(LoaderContext context, XmlReader reader, String refId, String refType, String refName) { if (!Strings.isEmpty(refId)) { return beanReference(context, refId); } if (!Strings.isAllEmpty(refType, refName)) { if (Strings.isEmpty(refType)) { throw new BeanDefinitionException("'The referenced bean type must not be empty, check :" + reader.getCurrentLocation()); } try { Class<?> c = forName(refType); return beanReference(context, c, refName); } catch (NestedClassNotFoundException e) { throw new BeanDefinitionException("Invalid class name '" + refType + "', source : " + reader.getSource(), e); } } return null; }
private RestdConfig.Operation readSqlOperation(RestdConfig config, XmlReader reader) { RestdConfig.Operation op = new RestdConfig.Operation(); op.setName(reader.getRequiredAttribute(NAME)); op.setType(SqlOperationProvider.TYPE); String sqlKey = reader.getAttribute(SQL_KEY); String sqlScript = reader.getElementTextAndEnd(); if(Strings.isAllEmpty(sqlKey, sqlScript)) { throw new ApiConfigException("One of the key or script must not be empty of sql operation '" + op.getName() + "', at " + reader.getCurrentLocation()); } if(!Strings.isEmpty(sqlKey)) { op.putArgument(SqlOperationProvider.ARG_SQL_KEY, sqlKey); } if(!Strings.isEmpty(sqlScript)) { op.setScript(sqlScript); op.setScriptPath(sqlKey); } return op; } }