private AttributedString(AttributedCharacterIterator iterator, int start, int end, java.util.Set <AttributedCharacterIteratorNS.Attribute> attributes) { if (start < iterator.getBeginIndex() || end > iterator.getEndIndex() || start > end) { throw new java.lang.IllegalArgumentException(); } if (attributes == null) { return; } StringBuilder buffer = new StringBuilder(); iterator.setIndex(start); while (iterator.getIndex() < end) { buffer.Append(iterator.current()); iterator.next(); } text = buffer.ToString(); attributeMap = new java.util.HashMap <AttributedCharacterIteratorNS.Attribute, java.util.List <IAC_Range> >();//(attributes.size() * 4 / 3) + 1); java.util.Iterator <AttributedCharacterIteratorNS.Attribute> it = attributes.iterator(); while (it.hasNext()) { AttributedCharacterIteratorNS.Attribute attribute = it.next(); iterator.setIndex(start); while (iterator.getIndex() < end) { System.Object value = iterator.getAttribute(attribute); int runStart = iterator.getRunStart(attribute); int limit = iterator.getRunLimit(attribute); if ((value is java.lang.annotation.Annotation && runStart >= start && limit <= end) || (value != null && !(value is java.lang.annotation.Annotation))) { addAttribute(attribute, value, (runStart < start ? start : runStart) - start, (limit > end ? end : limit) - start); } iterator.setIndex(limit); } } }
private AttributedString(AttributedCharacterIterator iterator, int start, int end, java.util.Set<AttributedCharacterIteratorNS.Attribute> attributes) { if (start < iterator.getBeginIndex() || end > iterator.getEndIndex() || start > end) { throw new java.lang.IllegalArgumentException(); } if (attributes == null) { return; } StringBuilder buffer = new StringBuilder(); iterator.setIndex(start); while (iterator.getIndex() < end) { buffer.Append(iterator.current()); iterator.next(); } text = buffer.ToString(); attributeMap = new java.util.HashMap<AttributedCharacterIteratorNS.Attribute, java.util.List<IAC_Range>>();//(attributes.size() * 4 / 3) + 1); java.util.Iterator<AttributedCharacterIteratorNS.Attribute> it = attributes.iterator(); while (it.hasNext()) { AttributedCharacterIteratorNS.Attribute attribute = it.next(); iterator.setIndex(start); while (iterator.getIndex() < end) { System.Object value = iterator.getAttribute(attribute); int runStart = iterator.getRunStart(attribute); int limit = iterator.getRunLimit(attribute); if ((value is java.lang.annotation.Annotation && runStart >= start && limit <= end) || (value != null && !(value is java.lang.annotation.Annotation))) { addAttribute(attribute, value, (runStart < start ? start : runStart) - start, (limit > end ? end : limit) - start); } iterator.setIndex(limit); } } }