List of usage examples for org.apache.commons.lang StringUtils lastIndexOf
public static int lastIndexOf(String str, String searchStr)
Finds the last index within a String, handling null
.
From source file:org.kuali.rice.krad.uif.widget.RichTable.java
/** * Builds column options for sorting/*from w w w . j a v a 2s. c o m*/ * * @param collectionGroup */ protected void buildTableOptions(CollectionGroup collectionGroup) { checkMutable(false); LayoutManager layoutManager = collectionGroup.getLayoutManager(); final boolean useServerPaging = collectionGroup.isUseServerPaging(); if (templateOptions.isEmpty()) { setTemplateOptions(new HashMap<String, String>()); } // if sub collection exists, don't allow the table sortable if (!collectionGroup.getSubCollections().isEmpty()) { setDisableTableSort(true); } if (!isDisableTableSort()) { // if rendering add line, skip that row from col sorting if (collectionGroup.isRenderAddLine() && !Boolean.TRUE.equals(collectionGroup.getReadOnly()) && !((layoutManager instanceof TableLayoutManager) && ((TableLayoutManager) layoutManager).isSeparateAddLine())) { templateOptions.put(UifConstants.TableToolsKeys.SORT_SKIP_ROWS, "[" + UifConstants.TableToolsValues.ADD_ROW_DEFAULT_INDEX + "]"); } StringBuilder tableColumnOptions = new StringBuilder("["); int colIndex = 0; int actionIndex = UifConstants.TableLayoutValues.ACTIONS_COLUMN_RIGHT_INDEX; boolean actionFieldVisible = collectionGroup.isRenderLineActions() && !Boolean.TRUE.equals(collectionGroup.getReadOnly()); if (layoutManager instanceof TableLayoutManager) { actionIndex = ((TableLayoutManager) layoutManager).getActionColumnIndex(); } if (actionIndex == UifConstants.TableLayoutValues.ACTIONS_COLUMN_LEFT_INDEX && actionFieldVisible) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options + ","); colIndex++; } // handle sequence field if (layoutManager instanceof TableLayoutManager && ((TableLayoutManager) layoutManager).isRenderSequenceField()) { Class<?> dataTypeClass = Number.class; if (((TableLayoutManager) layoutManager).getSequenceFieldPrototype() instanceof DataField) { DataField dataField = (DataField) ((TableLayoutManager) layoutManager) .getSequenceFieldPrototype(); dataTypeClass = ObjectPropertyUtils.getPropertyType(collectionGroup.getCollectionObjectClass(), dataField.getPropertyName()); // check to see if field has custom sort type if (dataField.getSortAs() != null && dataField.getSortAs().length() > 0) { if (dataField.getSortAs().equals(UifConstants.TableToolsValues.DATE)) { dataTypeClass = java.sql.Date.class; } else if (dataField.getSortAs().equals(UifConstants.TableToolsValues.NUMERIC)) { dataTypeClass = Number.class; } else if (dataField.getSortAs().equals(UifConstants.TableToolsValues.STRING)) { dataTypeClass = String.class; } } } // don't allow sorting of sequence field - why? // auto sequence column is never sortable tableColumnOptions.append("{" + sortable(false) + "," + sortType(getSortType(dataTypeClass)) + "," + sortDataType(UifConstants.TableToolsValues.DOM_TEXT) + mData(useServerPaging, colIndex) + "," + targets(colIndex) + "},"); colIndex++; if (actionIndex == 2 && actionFieldVisible) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options + ","); colIndex++; } } // skip select field if enabled if (collectionGroup.isIncludeLineSelectionField()) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options + ","); colIndex++; } // if data dictionary defines aoColumns, copy here and skip default sorting/visibility behaviour if (!StringUtils.isEmpty(templateOptions.get(UifConstants.TableToolsKeys.AO_COLUMNS))) { // get the contents of the JS array string String jsArray = templateOptions.get(UifConstants.TableToolsKeys.AO_COLUMNS); int startBrace = StringUtils.indexOf(jsArray, "["); int endBrace = StringUtils.lastIndexOf(jsArray, "]"); tableColumnOptions.append(StringUtils.substring(jsArray, startBrace + 1, endBrace) + ","); if (actionFieldVisible && (actionIndex == -1 || actionIndex >= colIndex)) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options); } else { tableColumnOptions = new StringBuilder( StringUtils.removeEnd(tableColumnOptions.toString(), ",")); } tableColumnOptions.append("]"); templateOptions.put(UifConstants.TableToolsKeys.AO_COLUMNS, tableColumnOptions.toString()); } else if (!StringUtils.isEmpty(templateOptions.get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS)) && forceAoColumnDefsOverride) { String jsArray = templateOptions.get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS); int startBrace = StringUtils.indexOf(jsArray, "["); int endBrace = StringUtils.lastIndexOf(jsArray, "]"); tableColumnOptions.append(StringUtils.substring(jsArray, startBrace + 1, endBrace) + ","); if (actionFieldVisible && (actionIndex == -1 || actionIndex >= colIndex)) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options); } else { tableColumnOptions = new StringBuilder( StringUtils.removeEnd(tableColumnOptions.toString(), ",")); } tableColumnOptions.append("]"); templateOptions.put(UifConstants.TableToolsKeys.AO_COLUMN_DEFS, tableColumnOptions.toString()); } else if (layoutManager instanceof TableLayoutManager) { List<Field> rowFields = ((TableLayoutManager) layoutManager).getFirstRowFields(); // build column defs from the the first row of the table for (Component component : rowFields) { if (actionFieldVisible && colIndex + 1 == actionIndex) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options + ","); colIndex++; } // for FieldGroup, get the first field from that group if (component instanceof FieldGroup) { component = ((FieldGroup) component).getItems().get(0); } if (component instanceof DataField) { DataField field = (DataField) component; // if a field is marked as invisible in hiddenColumns, append options and skip sorting if (getHiddenColumns() != null && getHiddenColumns().contains(field.getPropertyName())) { tableColumnOptions.append("{" + visible(false) + "," + mData(useServerPaging, colIndex) + targets(colIndex) + "},"); } else if (getSortableColumns() != null && !getSortableColumns().isEmpty()) { // if specified as a column as sortable then add it if (getSortableColumns().contains(field.getPropertyName())) { tableColumnOptions .append(getDataFieldColumnOptions(colIndex, collectionGroup, field) + ","); } else { // else designate it as not sortable tableColumnOptions.append("{" + sortable(false) + "," + mData(useServerPaging, colIndex) + targets(colIndex) + "},"); } } else { // sortable columns not defined String options = getDataFieldColumnOptions(colIndex, collectionGroup, field); tableColumnOptions.append(options + ","); } colIndex++; } else if (component instanceof MessageField) { if (component.getDataAttributes() != null && UifConstants.RoleTypes.ROW_GROUPING .equals(component.getDataAttributes().get(UifConstants.DataAttributes.ROLE))) { // Grouping column is never shown, so skip tableColumnOptions.append("{" + visible(false) + "," + mData(useServerPaging, colIndex) + targets(colIndex) + "},"); } else { String options = constructTableColumnOptions(colIndex, true, useServerPaging, String.class, UifConstants.TableToolsValues.DOM_TEXT); tableColumnOptions.append(options + ","); } colIndex++; } else if (component instanceof LinkField) { LinkField linkField = (LinkField) component; Class<?> dataTypeClass = String.class; // check to see if field has custom sort type if (linkField.getSortAs() != null && linkField.getSortAs().length() > 0) { if (linkField.getSortAs().equals(UifConstants.TableToolsValues.DATE)) { dataTypeClass = java.sql.Date.class; } else if (linkField.getSortAs().equals(UifConstants.TableToolsValues.NUMERIC)) { dataTypeClass = Number.class; } else if (linkField.getSortAs().equals(UifConstants.TableToolsValues.STRING)) { dataTypeClass = String.class; } } String options = constructTableColumnOptions(colIndex, true, useServerPaging, dataTypeClass, UifConstants.TableToolsValues.DOM_TEXT); tableColumnOptions.append(options + ","); colIndex++; } else { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options + ","); colIndex++; } } if (actionFieldVisible && (actionIndex == -1 || actionIndex >= colIndex)) { String options = constructTableColumnOptions(colIndex, false, useServerPaging, null, null); tableColumnOptions.append(options); } else { tableColumnOptions = new StringBuilder( StringUtils.removeEnd(tableColumnOptions.toString(), ",")); } // merge the aoColumnDefs passed in if (!StringUtils.isEmpty(templateOptions.get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS))) { String origAoOptions = templateOptions.get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS).trim(); origAoOptions = StringUtils.removeStart(origAoOptions, "["); origAoOptions = StringUtils.removeEnd(origAoOptions, "]"); tableColumnOptions.append("," + origAoOptions); } tableColumnOptions.append("]"); templateOptions.put(UifConstants.TableToolsKeys.AO_COLUMN_DEFS, tableColumnOptions.toString()); } } }
From source file:org.kuali.student.common.uif.widget.KSRichTable.java
/** * Builds column options for sorting//from w w w . j a v a 2 s . c om * * @param collectionGroup */ @Override protected void buildTableOptions(CollectionGroup collectionGroup) { LayoutManager layoutManager = collectionGroup.getLayoutManager(); final boolean isUseServerPaging = collectionGroup.isUseServerPaging(); // if sub collection exists, don't allow the table sortable if (!collectionGroup.getSubCollections().isEmpty()) { setDisableTableSort(true); } if (!isDisableTableSort()) { // if rendering add line, skip that row from col sorting if (collectionGroup.isRenderAddLine() && !collectionGroup.isReadOnly() && !((layoutManager instanceof TableLayoutManager) && ((TableLayoutManager) layoutManager).isSeparateAddLine())) { Map<String, String> oTemplateOptions = this.getTemplateOptions(); if (oTemplateOptions == null) { setTemplateOptions(oTemplateOptions = new HashMap<String, String>()); } oTemplateOptions.put(UifConstants.TableToolsKeys.SORT_SKIP_ROWS, "[" + UifConstants.TableToolsValues.ADD_ROW_DEFAULT_INDEX + "]"); } StringBuilder tableToolsColumnOptions = new StringBuilder("["); int columnIndex = 0; int actionIndex = UifConstants.TableLayoutValues.ACTIONS_COLUMN_RIGHT_INDEX; boolean actionFieldVisible = collectionGroup.isRenderLineActions() && !collectionGroup.isReadOnly(); if (layoutManager instanceof TableLayoutManager) { actionIndex = ((TableLayoutManager) layoutManager).getActionColumnIndex(); } if (actionIndex == UifConstants.TableLayoutValues.ACTIONS_COLUMN_LEFT_INDEX && actionFieldVisible) { String actionColOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(actionColOptions + " , "); columnIndex++; } if (layoutManager instanceof TableLayoutManager && ((TableLayoutManager) layoutManager).isRenderSequenceField()) { //add mData handling if using a json data source String mDataOption = ""; if (collectionGroup.isUseServerPaging() || isForceLocalJsonData()) { mDataOption = "\"" + UifConstants.TableToolsKeys.MDATA + "\" : function(row,type,newVal){ return _handleColData(row,type,'c" + columnIndex + "',newVal);}, "; } tableToolsColumnOptions.append("{\"" + UifConstants.TableToolsKeys.SORTABLE + "\" : " + false // auto sequence column is never sortable + ", \"" + UifConstants.TableToolsKeys.SORT_TYPE + "\" : \"" + UifConstants.TableToolsValues.NUMERIC + "\", " + mDataOption + "\"" + UifConstants.TableToolsKeys.TARGETS + "\": [" + columnIndex + "]}, "); columnIndex++; if (actionIndex == 2 && actionFieldVisible) { String actionColOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(actionColOptions + " , "); columnIndex++; } } // skip select field if enabled if (collectionGroup.isIncludeLineSelectionField()) { String colOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(colOptions + " , "); columnIndex++; } // if data dictionary defines aoColumns, copy here and skip default sorting/visibility behaviour if (!StringUtils.isEmpty(getTemplateOptions().get(UifConstants.TableToolsKeys.AO_COLUMNS))) { // get the contents of the JS array string String jsArray = getTemplateOptions().get(UifConstants.TableToolsKeys.AO_COLUMNS); int startBrace = StringUtils.indexOf(jsArray, "["); int endBrace = StringUtils.lastIndexOf(jsArray, "]"); tableToolsColumnOptions.append(StringUtils.substring(jsArray, startBrace + 1, endBrace) + ", "); if (actionFieldVisible && (actionIndex == -1 || actionIndex >= columnIndex)) { String actionColOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(actionColOptions); } else { tableToolsColumnOptions = new StringBuilder( StringUtils.removeEnd(tableToolsColumnOptions.toString(), ", ")); } tableToolsColumnOptions.append("]"); getTemplateOptions().put(UifConstants.TableToolsKeys.AO_COLUMNS, tableToolsColumnOptions.toString()); } else if (!StringUtils.isEmpty(getTemplateOptions().get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS)) && isForceAoColumnDefsOverride()) { String jsArray = getTemplateOptions().get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS); int startBrace = StringUtils.indexOf(jsArray, "["); int endBrace = StringUtils.lastIndexOf(jsArray, "]"); tableToolsColumnOptions.append(StringUtils.substring(jsArray, startBrace + 1, endBrace) + ", "); if (actionFieldVisible && (actionIndex == -1 || actionIndex >= columnIndex)) { String actionColOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(actionColOptions); } else { tableToolsColumnOptions = new StringBuilder( StringUtils.removeEnd(tableToolsColumnOptions.toString(), ", ")); } tableToolsColumnOptions.append("]"); getTemplateOptions().put(UifConstants.TableToolsKeys.AO_COLUMN_DEFS, tableToolsColumnOptions.toString()); } else if (layoutManager instanceof TableLayoutManager) { List<Field> rowFields = ((TableLayoutManager) layoutManager).getFirstRowFields(); // build column defs from the the first row of the table for (Component component : rowFields) { if (actionFieldVisible && columnIndex + 1 == actionIndex) { String actionColOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(actionColOptions + " , "); columnIndex++; } //add mData handling if using a json data source String mDataOption = ""; if (collectionGroup.isUseServerPaging() || isForceLocalJsonData()) { mDataOption = "\"" + UifConstants.TableToolsKeys.MDATA + "\" : function(row,type,newVal){ return _handleColData(row,type,'c" + columnIndex + "',newVal);}, "; } // for FieldGroup, get the first field from that group if (component instanceof FieldGroup) { component = ((FieldGroup) component).getItems().get(0); } Map<String, String> componentDataAttributes; if (component instanceof DataField) { DataField field = (DataField) component; // if a field is marked as invisible in hiddenColumns, append options and skip sorting if (getHiddenColumns() != null && getHiddenColumns().contains(field.getPropertyName())) { tableToolsColumnOptions.append("{" + UifConstants.TableToolsKeys.VISIBLE + ": " + UifConstants.TableToolsValues.FALSE + ", " + mDataOption + "\"" + UifConstants.TableToolsKeys.TARGETS + "\": [" + columnIndex + "]" + "}, "); // if sortableColumns is present and a field is marked as sortable or unspecified } else if (getSortableColumns() != null && !getSortableColumns().isEmpty()) { if (getSortableColumns().contains(field.getPropertyName())) { tableToolsColumnOptions.append( getDataFieldColumnOptions(columnIndex, collectionGroup, field) + ", "); } else { tableToolsColumnOptions.append("{'" + UifConstants.TableToolsKeys.SORTABLE + "': " + UifConstants.TableToolsValues.FALSE + ", " + mDataOption + "\"" + UifConstants.TableToolsKeys.TARGETS + "\": [" + columnIndex + "]" + "}, "); } } else {// sortable columns not defined String colOptions = getDataFieldColumnOptions(columnIndex, collectionGroup, field); tableToolsColumnOptions.append(colOptions + " , "); } columnIndex++; } else if ((component instanceof MessageField) && (componentDataAttributes = component.getDataAttributes()) != null && UifConstants.RoleTypes.ROW_GROUPING .equals(componentDataAttributes.get(UifConstants.DataAttributes.ROLE))) { //Grouping column is never shown, so skip tableToolsColumnOptions.append("{" + UifConstants.TableToolsKeys.VISIBLE + ": " + UifConstants.TableToolsValues.FALSE + ", " + mDataOption + "\"" + UifConstants.TableToolsKeys.TARGETS + "\": [" + columnIndex + "]" + "}, "); columnIndex++; // start KS customization (to allow message field sorting) - KSENROLL-4999 } else if (component instanceof MessageField) { componentDataAttributes = component.getDataAttributes(); //For message field, sort as a regular String String sortType = ""; if (componentDataAttributes != null) { sortType = componentDataAttributes.get("sortType"); } if (StringUtils.isBlank(sortType)) { sortType = UifConstants.TableToolsValues.DOM_TEXT; } String colOptions = constructTableColumnOptions(columnIndex, true, isUseServerPaging, String.class, sortType); tableToolsColumnOptions.append(colOptions + " , "); columnIndex++; // end KS customization (to allow message field sorting) - KSENROLL-4999 } else if (component instanceof LinkField) { String colOptions = constructTableColumnOptions(columnIndex, true, isUseServerPaging, String.class, UifConstants.TableToolsValues.DOM_TEXT); tableToolsColumnOptions.append(colOptions + " , "); columnIndex++; } else { String colOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(colOptions + " , "); columnIndex++; } } if (actionFieldVisible && (actionIndex == -1 || actionIndex >= columnIndex)) { String actionColOptions = constructTableColumnOptions(columnIndex, false, isUseServerPaging, null, null); tableToolsColumnOptions.append(actionColOptions); } else { tableToolsColumnOptions = new StringBuilder( StringUtils.removeEnd(tableToolsColumnOptions.toString(), ", ")); } //merge the aoColumnDefs passed in if (!StringUtils.isEmpty(getTemplateOptions().get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS))) { String origAoOptions = getTemplateOptions().get(UifConstants.TableToolsKeys.AO_COLUMN_DEFS) .trim(); origAoOptions = StringUtils.removeStart(origAoOptions, "["); origAoOptions = StringUtils.removeEnd(origAoOptions, "]"); tableToolsColumnOptions.append("," + origAoOptions); } tableToolsColumnOptions.append("]"); getTemplateOptions().put(UifConstants.TableToolsKeys.AO_COLUMN_DEFS, tableToolsColumnOptions.toString()); } } }
From source file:org.onehippo.forge.content.exim.core.util.ContentPathUtils.java
/** * Splits the given {@code contentLocation} to an array which consists of a folder path and the node name. * @param contentLocation content node path * @return an array which consists of a folder path and the node name *//*ww w. j av a 2 s . co m*/ public static String[] splitToFolderPathAndName(final String contentLocation) { String[] folderPathAndName = new String[] { "", "" }; int offset = StringUtils.lastIndexOf(contentLocation, '/'); folderPathAndName[0] = StringUtils.substring(contentLocation, 0, offset); folderPathAndName[1] = StringUtils.substring(contentLocation, offset + 1); return folderPathAndName; }
From source file:org.sonar.plugins.scmstats.AbstractScmAdapter.java
Resource createResource(String resourceName) { String mavenizedResourceName = StringUtils.remove(resourceName, configuration.getSourceDir()); mavenizedResourceName = StringUtils.remove(mavenizedResourceName, configuration.getTestSourceDir()); int index = StringUtils.lastIndexOf(mavenizedResourceName, "/"); String directory = StringUtils.substring(mavenizedResourceName, 0, index); String filename = StringUtils.substring(mavenizedResourceName, index + 1); return new File(directory, filename); }
From source file:org.talend.metadata.managment.model.NetezzaConnectionFiller.java
/** * get the database name from the url./*from w w w .ja v a2 s . c om*/ * * @param url * @return */ private String getDatabaseNameFromUrl(String url) { if (StringUtils.isBlank(url)) { return StringUtils.EMPTY; } int lastIndexOf1 = StringUtils.lastIndexOf(url, "/"); //$NON-NLS-1$ if (lastIndexOf1 < 0 || lastIndexOf1 > url.length() - 1) { return StringUtils.EMPTY; } int lastIndexOf2 = StringUtils.lastIndexOf(url, "?"); //$NON-NLS-1$ if (lastIndexOf2 < 0) { return StringUtils.substring(url, lastIndexOf1 + 1); } else { if (lastIndexOf2 < lastIndexOf1) { return StringUtils.EMPTY; } return StringUtils.substring(url, lastIndexOf1 + 1, lastIndexOf2); } }
From source file:org.talend.repository.ui.wizards.metadata.connection.database.DatabaseForm.java
private String getUppercaseNetezzaUrl(String url) { if (StringUtils.isBlank(url)) { return url; }/*from w ww . j av a2 s . c o m*/ String uppcaseUrl = url; int lastIndexOf = StringUtils.lastIndexOf(url, "/"); //$NON-NLS-1$ if (lastIndexOf > 0 && lastIndexOf < url.length() - 1) { String part1 = StringUtils.substring(url, 0, lastIndexOf + 1); String part2 = StringUtils.substring(url, lastIndexOf + 1); if (!StringUtils.isEmpty(part2)) { int indexOf = StringUtils.indexOf(part2, "?"); //$NON-NLS-1$ if (indexOf > -1) { String sid = StringUtils.substring(part2, 0, indexOf); part2 = StringUtils.upperCase(sid) + StringUtils.substring(part2, indexOf, part2.length()); } else { part2 = StringUtils.upperCase(part2); } uppcaseUrl = part1 + part2; } } return uppcaseUrl; }
From source file:org.talend.repository.ui.wizards.metadata.connection.database.DatabaseWizard.java
/** * uppercase the sid and url of Netezza connection. * //from w w w .j a va2 s . co m * @param netezzaConnection */ private void uppercaseNetezzaSidUrl(DatabaseConnection netezzaConnection) { if (netezzaConnection == null) { return; } netezzaConnection.setSID(StringUtils.upperCase(netezzaConnection.getSID())); String url = netezzaConnection.getURL(); if (StringUtils.isBlank(url)) { return; } int lastIndexOf = StringUtils.lastIndexOf(url, "/"); //$NON-NLS-1$ if (lastIndexOf > 0 && lastIndexOf < url.length() - 1) { String part1 = StringUtils.substring(url, 0, lastIndexOf + 1); String part2 = StringUtils.substring(url, lastIndexOf + 1); if (!StringUtils.isEmpty(part2)) { int indexOf = StringUtils.indexOf(part2, "?"); //$NON-NLS-1$ if (indexOf > -1) { String sid = StringUtils.substring(part2, 0, indexOf); part2 = StringUtils.upperCase(sid) + StringUtils.substring(part2, indexOf, part2.length()); } else { part2 = StringUtils.upperCase(part2); } netezzaConnection.setURL(part1 + part2); } } }
From source file:org.telscenter.sail.webapp.presentation.util.impl.SessionNavLogImpl.java
/** * Given a <code>String</code> XML SockEntry, returns a <code>String</code> * with the XML header info removed/*ww w . j ava2s . co m*/ * * @param <code>String</code> s * @return <code>String</code> */ private String stripHead(String s) { return StringUtils.strip(s.substring(StringUtils.indexOf(s, '>') + 1, StringUtils.lastIndexOf(s, '>'))); }
From source file:org.telscenter.sail.webapp.presentation.util.impl.SessionNavLogImpl.java
/** * Given a <code>String</code> XML SockEntry, returns the <code>String</code> * podUUID//from w w w. ja v a2 s. co m * * @param <code>String</code> s * @return <code>String</code> */ public String podUUID(String s) { String headless = stripHead(s); return StringUtils.strip( headless.substring(StringUtils.indexOf(headless, '"') + 1, StringUtils.lastIndexOf(headless, '"'))); }
From source file:org.trancecode.xproc.step.AddXmlBaseStepProcessor.java
@Override protected void execute(final StepInput input, final StepOutput output) { final XdmNode sourceDoc = input.readNode(XProcPorts.SOURCE); final boolean allOption = Boolean.valueOf(input.getOptionValue(XProcOptions.ALL, "false")); final boolean relativeOption = Boolean.valueOf(input.getOptionValue(XProcOptions.RELATIVE, "true")); final QName xmlBase = new QName("xml", XMLConstants.XML_NS_URI, "base"); if (allOption && relativeOption) { throw XProcExceptions.xc0058(input.getStep().getLocation()); }/*from w w w . j ava 2 s . c o m*/ final SaxonProcessorDelegate addXmlBaseDelegate = new CopyingSaxonProcessorDelegate() { @Override public EnumSet<NextSteps> startElement(final XdmNode node, final SaxonBuilder builder) { builder.startElement(node.getNodeName(), node); for (final XdmNode attribute : SaxonAxis.attributes(node)) { LOG.trace("copy existing attribute except xml base: {}", attribute); if (!xmlBase.equals(attribute.getNodeName())) { builder.attribute(attribute.getNodeName(), attribute.getStringValue()); } } if (allOption || XdmNodeKind.DOCUMENT.equals(node.getParent().getNodeKind())) { builder.attribute(xmlBase, node.getBaseURI().toString()); } else { if (!node.getBaseURI().equals(node.getParent().getBaseURI())) { if (relativeOption) { final String attrBase = node.getParent().getBaseURI().resolve(node.getBaseURI()) .toString(); final int lastIdx = StringUtils.lastIndexOf(attrBase, "/") + 1; builder.attribute(xmlBase, StringUtils.substring(attrBase, lastIdx)); } else { builder.attribute(xmlBase, node.getBaseURI().toString()); } } } return EnumSet.of(NextSteps.PROCESS_CHILDREN, NextSteps.START_CONTENT); } }; final SaxonProcessor addXmlBaseProcessor = new SaxonProcessor(input.getPipelineContext().getProcessor(), addXmlBaseDelegate); final XdmNode result = addXmlBaseProcessor.apply(sourceDoc); output.writeNodes(XProcPorts.RESULT, result); }