/** * Low-level factory method. Consider using a {@link IQualifiedNameConverter} instead. * * @param singleSegment * the single segment of the newly created qualified name * @exception IllegalArgumentException * if the singleSegment is null * @since 2.3 */ public static QualifiedName create(String singleSegment) { if (singleSegment == null) { throw new IllegalArgumentException("Segment cannot be null"); } return new QualifiedName(singleSegment); }
public QualifiedName append(String segment) { if (segment == null) { throw new IllegalArgumentException("Segment cannot be null"); } String[] newSegments = new String[getSegmentCount() + 1]; System.arraycopy(segments, 0, newSegments, 0, segments.length); newSegments[segments.length] = segment; return new QualifiedName(newSegments); }
public QualifiedName toUpperCase() { String[] newSegments = new String[getSegmentCount()]; for (int i = 0; i < getSegmentCount(); ++i) newSegments[i] = segments[i].toUpperCase(); return new QualifiedName(newSegments); }
/** * Low-level factory method. Consider using a {@link IQualifiedNameConverter} instead. * * @param segments * the segments of the to-be-created qualified name. May be <code>null</code>, but may not contain * <code>null</code> entries. * @return a {@link QualifiedName}. Never <code>null</code>. * @exception IllegalArgumentException * if any of the segments is null * @since 2.3 */ public static QualifiedName create(List<String> segments) { if (segments == null || segments.isEmpty()) return QualifiedName.EMPTY; if (segments.size() == 1) { String singleSegment = segments.get(0); return QualifiedName.create(singleSegment); } String[] segmentArray = segments.toArray(new String[segments.size()]); for (int i = 0; i < segmentArray.length; i++) { if (segmentArray[i] == null) { throw new IllegalArgumentException("Segment cannot be null"); } } return new QualifiedName(segmentArray); }
public QualifiedName skipFirst(int skipCount) { if (skipCount == getSegmentCount()) { return EMPTY; } if (skipCount > getSegmentCount() || skipCount < 0) { throw new IllegalArgumentException("Cannot skip " + skipCount + " fragments from QualifiedName with " + getSegmentCount() + " segments"); } String[] newSegments = new String[segments.length - skipCount]; System.arraycopy(segments, skipCount, newSegments, 0, newSegments.length); return new QualifiedName(newSegments); }
public QualifiedName skipLast(int skipCount) { if (skipCount == getSegmentCount()) { return EMPTY; } if (skipCount > getSegmentCount() || skipCount < 0) { throw new IllegalArgumentException("Cannot skip " + skipCount + " fragments from QualifiedName with " + getSegmentCount() + " segments"); } String[] newSegments = new String[segments.length - skipCount]; System.arraycopy(segments, 0, newSegments, 0, newSegments.length); return new QualifiedName(newSegments); }
/** * Internal low level factory method. * @noreference This method is not intended to be referenced by clients. * @since 2.4 */ public static QualifiedName createFromStream(EObjectInputStream eObjectInputStream) throws IOException{ int segmentCount = eObjectInputStream.readCompressedInt(); if (segmentCount == 0) { return QualifiedName.EMPTY; } String[] segments = new String[segmentCount]; for (int i = 0; i < segmentCount; ++i) { segments[i] = eObjectInputStream.readSegmentedString(); } return new QualifiedName(segments); }
/** * Low-level factory method. Consider using a {@link IQualifiedNameConverter} instead. * * @param segments the segments of the to-be-created qualified name. * May be <code>null</code>, but may not contain <code>null</code> entries. * @return a {@link QualifiedName}. Never <code>null</code>. * @exception IllegalArgumentException * if any of the segments is null */ public static QualifiedName create(String... segments) { if (segments == null || segments.length == 0) { return EMPTY; } if (segments.length == 1) { return create(segments[0]); } for (int i = 0; i < segments.length; i++) { if (segments[i] == null) { throw new IllegalArgumentException("Segment cannot be null"); } } return new QualifiedName(segments.clone()); }
public QualifiedName append(QualifiedName relativeQualifiedName) { String[] newSegments = new String[getSegmentCount() + relativeQualifiedName.getSegmentCount()]; for (int i = 0; i < getSegmentCount(); ++i) newSegments[i] = getSegment(i); for (int i = 0; i < relativeQualifiedName.getSegmentCount(); ++i) newSegments[i + getSegmentCount()] = relativeQualifiedName.getSegment(i); return new QualifiedName(newSegments); }