src/com/amazon/ion/impl/IonBinary.java (15 lines): - line 271: // TODO: move this to IonConstants or IonUTF8 - line 458: // TODO maybe add lenVarInt(int) to micro-optimize, or? - line 515: // TODO maybe add lenInt(int) to micro-optimize, or? - line 786: // TODO how is this possible? - line 803: assert symid > 0; // TODO amzn/ion-java/issues/12 - line 1012: // TODO add skip(int) method instead of this loop. - line 1061: // TODO check for invalid lownibbles - line 1107: // TODO use InvalidBinaryDataException - line 1951: // TODO cleanup this logic. lengthFollows == is struct - line 2014: // TODO - this may have problems with unicode utf16/utf8 conversions - line 2023: int len = chars.length(); // TODO is this ever >0 for clob? - line 2241: // TODO determine if this can really happen. - line 2453: // TODO write "custom" serialization or verify that - line 2527: if (len > 13) len = 14; // TODO remove magic numbers - line 2773: // TODO don't use magic numbers! src/com/amazon/ion/impl/IonTokenReader.java (12 lines): - line 43: // TODO clean up, many of these are unused. - line 124: * TODO why this class exists at all. We should store - line 132: public static class timeinfo { // TODO remove vestigial class timeinfo - line 136: s = s.trim(); // TODO why is this necessary? - line 138: t = Timestamp.valueOf(s); // TODO should Timestamp just throw an IonException? - line 148: // TODO move out of this class into TR. - line 363: stringValue = value.toString(); // TODO combine with below? - line 460: // TODO clone the body of next(c) here, later , for perf, we - line 682: if (c == -1) { // TODO throw UnexpectedEofException - line 958: case -1: break sizedloop; // TODO deoptimize, throw exception - line 1157: if (c < 0) break; // TODO throw UnexpectedEofException - line 1541: // FIXME I don't think there should be a timezone here src/com/amazon/ion/impl/IonWriterSystem.java (10 lines): - line 142: // TODO amzn/ion-java/issues/24 Must write IVM if given system != 1.0 - line 145: // TODO amzn/ion-java/issues/24 Add SUPPRESS_ALL to suppress non 1.0 IVMs - line 149: // TODO amzn/ion-java/issues/24 Write IVM if current system version != given system - line 155: // TODO amzn/ion-java/issues/24 Write IVM if current system version != given system - line 294: // TODO amzn/ion-java/issues/24 Make sure to get the right symtab, default may differ. - line 309: // TODO amzn/ion-java/issues/24 Make sure to get the right symtab, default may differ. - line 427: // TODO cache the sid? - line 543: // TODO the following makes two copy passes - line 544: // TODO validate the input - line 578: // TODO the following makes two copy passes src/com/amazon/ion/impl/IonReaderBinaryUserX.java (9 lines): - line 97: //FIXME: PERF_TEST was :private - line 100: // TODO check IVM to determine version: amzn/ion-java#19, amzn/ion-java#24 - line 160: // TODO test that span is within the bounds of the input byte[] - line 167: // TODO: these (eof and save points) should be put into - line 346: // TODO amzn/ion-java/issues/17 support seeking over InputStream - line 365: // TODO amzn/ion-java/issues/16 Our {@link #transferCurrentValue} doesn't handle - line 428: // TODO Copy from a stream should also be possible. - line 434: // TODO amzn/ion-java/issues/16 wrong if current value has a field name or - line 436: // TODO when implementing that, be careful to handle the case where src/com/amazon/ion/impl/_Private_Utils.java (9 lines): - line 109: * TODO determine if this is well-defined. - line 211: // TODO amzn/ion-java/issues/21 symtab should not be null - line 230: // TODO amzn/ion-java/issues/21 symtab should not be null - line 291: if (symtab != null) // TODO amzn/ion-java/issues/21 require symtab - line 501: * TODO benchmark the two approaches - line 790: // TODO We need to think about providing a suitable recovery process - line 899: // TODO this is over-strict, but not as strict as LocalSymbolTable.symtabExtends() - line 962: // TODO amzn/ion-java/issues/24 System symtab-ness ARE relevant if there's multiple - line 975: // TODO reason about symbol tables that don't extend LocalSymbolTable but are still local src/com/amazon/ion/impl/lite/IonDatagramLite.java (8 lines): - line 241: // TODO where do we validate that element isn't a datagram? - line 288: // TODO optimize to avoid n^2 shifting and renumbering of elements. - line 420: // TODO evaluate whether an IVM should ever be written here. amzn/ion-java#200 - line 450: // TODO this is horrible, users will end up encoding multiple times! - line 489: // TODO: optimize this, if there's a real use case - line 515: // TODO: optimize this, if there's a real use case - line 597: * TODO with the updated next and previous logic, particularly - line 1068: // TODO this is wrong, because we may have already pushed src/com/amazon/ion/Decimal.java (8 lines): - line 97: // TODO signum might break clients if -0 returns <0 instead of 0 - line 98: // TODO static negate(BigDecimal) - line 99: // TODO hashcode - line 101: // TODO some other things: - line 373: // TODO create static valueOf to check for -0 - line 379: // TODO create static valueOf to check for -0 - line 386: // TODO create static valueOf to check for -0 - line 392: // TODO create static valueOf to check for -0 src/com/amazon/ion/impl/IonReaderTextRawTokensX.java (7 lines): - line 499: // FIXME lots of inconsistency here! - line 538: skip_double_quoted_string_helper(); // FIXME Why no sp here? - line 1158: // TODO: need new test cases since stepping out over values - line 1558: // TODO this will be a confusing error message, - line 1960: // TODO why not read_char_escaped() ? - line 2187: // TODO: uncomment if we don't want to normalize end of line: c = '\r'; - line 2191: // TODO: uncomment if we don't want to normalize end of line: sb.append('\r'); src/com/amazon/ion/util/Equivalence.java (6 lines): - line 138: * TODO amzn/ion-java/issues/26 Marker for code that needs to be altered in order to - line 437: // TODO amzn/ion-java/issues/23 Problematic with unknown field names. - line 451: // TODO amzn/ion-java/issues/58 : implement hash code such that it respects - line 541: assert !PUBLIC_COMPARISON_API; // TODO amzn/ion-java/issues/26 - line 548: assert !PUBLIC_COMPARISON_API; // TODO amzn/ion-java/issues/26 - line 576: assert !PUBLIC_COMPARISON_API; // TODO amzn/ion-java/issues/26 src/com/amazon/ion/impl/IonReaderTextSystemX.java (6 lines): - line 67: _system_symtab = _Private_Utils.systemSymtab(1); // TODO check IVM to determine version: amzn/ion-java/issues/19 - line 72: // TODO getIntegerType() is duplicated in IonReaderBinarySystemX. It could - line 378: // TODO this is catching SIDs too, using wrong text. - line 918: _lob_value_position += read; // TODO: is _lob_value_position really needed? - line 959: // FIXME inefficient: both newBytes and setBytes copy the data - line 964: // FIXME inefficient: both newBytes and setBytes copy the data src/com/amazon/ion/impl/lite/IonValueLite.java (6 lines): - line 313: // TODO - amzn/ion-java/issues/223 needs consistent handling, should attempt to resolve and if it cant; fail - line 470: // TODO amzn/ion-java/issues/27 We should memoize the results of symtab lookups. - line 547: // TODO - for SID handling consistency; this should attempt resolution first - line 561: // TODO - for SID handling consistency; this should attempt resolution first, not just drop entry - line 616: // TODO amzn/ion-java/issues/27 why no symtab lookup, like getFieldNameSymbol()? - line 686: // TODO amzn/ion-java/issues/27 We should memoize the result of symtab lookups src/com/amazon/ion/impl/lite/ReverseBinaryEncoder.java (5 lines): - line 181: * TODO To be deprecated along with {@link IonDatagram#getBytes(byte[])} - line 204: * TODO To be deprecated along with {@link IonDatagram#getBytes(byte[], int)} - line 1164: // TODO amzn/ion-java/issues/31 should not preserve the ordering of fields - line 1185: // TODO amzn/ion-java/issues/41 Detect if the struct fields are sorted in ascending - line 1276: * TODO amzn/ion-java/issues/25 Currently, {@link IonDatagram#systemIterator()} doesn't src/com/amazon/ion/impl/lite/IonSymbolLite.java (5 lines): - line 68: // TODO [amzn/ion-java/issues/27] - needs consistent handling, when to retain SID's vs ignore - line 72: // TODO [amzn/ion-java/issues/223] - needs consistent handling, resolution against context symbol table - line 159: // TODO [amzn/ion-java/issues/27] - needs consistent handling, when to retain SID's vs ignore (here memoizing SID on read) - line 265: // TODO [amzn/ion-java/issues/223] - needs consistent handling, resolution against context symbol table - line 289: // TODO amzn/ion-java/issues/27 Fix symbol handling src/com/amazon/ion/impl/SimpleByteBuffer.java (4 lines): - line 509: Precision p = null; // FIXME remove - line 521: if (position() < end) { // FIXME remove - line 1200: // TODO write "custom" serialization or verify that - line 1282: // TODO don't use magic numbers! src/com/amazon/ion/impl/lite/IonSystemLite.java (4 lines): - line 284: // TODO streamline to avoid making this collection - line 342: // TODO amzn/ion-java/issues/9 Inefficient since we can't determine the size - line 565: // TODO: do we need catalog, import support for this? - line 615: // TODO _reader.close(); src/com/amazon/ion/SpanProvider.java (4 lines): - line 44: // public Span contentSpan(); // TODO later - line 45: // TODO move to Span interface? - line 53: // public Span containerSpan(); // TODO later - line 54: // TODO move to Span interface? src/com/amazon/ion/impl/IonReaderTextRawX.java (4 lines): - line 53: * TODO amzn/ion-java/issues/7 We may want to make validation on skip optional. - line 779: boolean trailing_whitespace = false; // TODO: there's a better way to do this - line 782: // FIXME: check depth and type before doing anything further - line 808: // TODO why would we get here? src/com/amazon/ion/impl/SharedSymbolTable.java (4 lines): - line 72: * TODO amzn/ion-java/issues/34 Optimize system symtabs by using our custom backing impl. - line 241: // TODO amzn/ion-java/issues/35 If there's more than one 'symbols' or 'imports' - line 243: // TODO amzn/ion-java/issues/36 Switching over SIDs doesn't cover the case - line 401: // TODO amzn/ion-java/issues/12 What about empty symbols? src/com/amazon/ion/apps/PrintApp.java (3 lines): - line 28: * TODO pretty-print on/off and configure - line 29: * TODO show system view (eg symbol tables) - line 87: // TODO --help src/com/amazon/ion/impl/_Private_IonTextAppender.java (3 lines): - line 498: // TODO test that - line 901: // TODO is it better to fill up the CharBuffer before outputting? - line 976: // TODO Account for NL versus CR+NL streams src/com/amazon/ion/impl/IonReaderBinaryRawX.java (3 lines): - line 267: // FIXME why is EOF ever okay in the middle of a struct? - line 528: // TODO Keeping track of _value_start is only necessary because top-level - line 626: next_remaining = 0; // we'll see and EOF down the road TODO: should we error now? src/com/amazon/ion/impl/lite/IonContainerLite.java (3 lines): - line 71: // TODO profile `getKnownFieldNameSymbol` to see if we can improve its performance so branching - line 168: * TODO with the updated next and previous logic, particularly - line 665: // FIXME this doesn't update the child's context or index src/com/amazon/ion/IonTimestamp.java (3 lines): - line 21: // TODO document local offset viz RFC-3339 - line 32: // TODO amzn/ion-java/issues/223 Deprecate setters and getters - line 221: // TODO add setCurrentTimeLocal(); src/com/amazon/ion/impl/IonReaderTextUserX.java (3 lines): - line 278: // TODO: convert _start_char_offset from a long and data page - line 283: // TODO: this page isn't safe, except where we have only a single - line 367: // TODO: this is a pretty expensive way to do this. UnifiedInputStreamX src/com/amazon/ion/IonStruct.java (3 lines): - line 286: // TODO public Set keySet(); - line 287: // TODO public Collection values(); - line 288: // TODO public Set> entrySet(); src/com/amazon/ion/impl/IonWriterSystemBinary.java (3 lines): - line 283: int [] _patch_lengths = new int[DEFAULT_PATCH_COUNT]; // TODO: should these be merged? (since array access is expensive) - line 888: // TODO make private after IonBinaryWriter is removed - line 1015: // TODO this is assuming the symtab needed here, broken for open content. src/com/amazon/ion/impl/LocalSymbolTableAsStruct.java (3 lines): - line 98: // TODO this should die with the 'backed' DOM - line 160: // TODO: there needs to be a better way to associate a System with - line 252: // TODO this is crazy inefficient and not as reliable as it looks src/com/amazon/ion/impl/_Private_IonWriterBase.java (3 lines): - line 309: // TODO these symtabs are never popped! - line 341: // dangling on the system writer! TODO fix that, it's broken. - line 357: // TODO this should do symtab optimization as per writeValues() src/com/amazon/ion/impl/_Private_IonReaderFactory.java (3 lines): - line 282: // TODO pass offset, or spans will be incorrect - line 286: // TODO pass offset, or spans will be incorrect - line 321: // TODO avoid multiple wrapping streams, use the UIS for the pushback src/com/amazon/ion/impl/lite/IonSequenceLite.java (3 lines): - line 150: // TODO optimize to avoid n^2 shifting and renumbering of elements. - line 281: // TODO this method (and probably several others) needs optimization. - line 379: // TODO JDK 1.6 this could use Arrays.copyOf src/com/amazon/ion/impl/lite/IonStructLite.java (3 lines): - line 47: // TODO amzn/ion-java/issues/41: add support for _isOrdered - line 452: // TODO validate in struct.setFieldName - line 546: // TODO this is very inefficient src/com/amazon/ion/impl/LocalSymbolTable.java (3 lines): - line 260: // TODO amzn/ion-java/issues/36 Switching over SIDs doesn't cover the case - line 745: // TODO custom exception - line 842: // TODO amzn/ion-java/issues/18 Currently, we check imports by their refs. which src/com/amazon/ion/impl/UnifiedDataPageX.java (3 lines): - line 103: // FIXME document lower-bound of the result. Can it be negative? - line 166: // FIXME: remove "public" when UnifiedOutputBufferX is - line 208: // FIXME: remove "public" when UnifiedOutputBufferX is src/com/amazon/ion/apps/SymtabApp.java (3 lines): - line 142: // TODO verify that we don't import the same name. - line 176: // TODO ensure IVM is printed - line 182: // TODO Auto-generated catch block src/com/amazon/ion/impl/SymbolTableReader.java (3 lines): - line 487: // FIXME: is this ever true? set_flag(HAS_MAX_ID, true); - line 1056: // TODO: this should return a system symbol table - line 1386: // TODO handle null src/com/amazon/ion/impl/IonReaderBinarySystemX.java (3 lines): - line 53: // TODO check IVM to determine version: amzn/ion-java#19, amzn/ion-java#24 - line 247: // TODO: it looks like a 0 length return a null timestamp - is that right? - line 263: // TODO: is treating this as an int too misleading? src/com/amazon/ion/impl/IonReaderTreeSystem.java (2 lines): - line 234: // TODO should this localize the symbols? - line 262: // FIXME IonValueImpl.getFieldId doesn't return -1 as specced here! src/com/amazon/ion/util/IonTextUtils.java (2 lines): - line 58: // FIXME look for BOM - line 180: // TODO test that src/com/amazon/ion/impl/IonIteratorImpl.java (2 lines): - line 125: // TODO always pass the SID? Is it correct? - line 187: // TODO this is too late in the case of system reading src/com/amazon/ion/impl/_Private_IonConstants.java (2 lines): - line 218: // TODO unify these - line 294: * TODO amzn/ion-java/issues/23 However, there is still a potential failure if one of the src/com/amazon/ion/Span.java (2 lines): - line 65: // public Span containerSpan(); // TODO later. Move to a facet? - line 75: // public Span contentSpan(); // TODO later. Move to a facet? src/com/amazon/ion/impl/_Private_IonSystem.java (2 lines): - line 39: * TODO Must correct amzn/ion-java/issues/63 before exposing this or using from public API. - line 44: * TODO Must correct amzn/ion-java/issues/63 before exposing this or using from public API. src/com/amazon/ion/impl/UnifiedInputStreamX.java (2 lines): - line 245: // TODO: add test only code that checks the previous buffer - line 582: // FIXME: PERF_TEST was: private src/com/amazon/ion/impl/IonTextBufferedStream.java (2 lines): - line 39: /*** FIXME: REMOVE OR FINISH - line 48: /*** FIXME: REMOVE OR FINISH src/com/amazon/ion/impl/lite/IonDecimalLite.java (2 lines): - line 42: // TODO perhaps use Float.compare() instead? - line 50: // TODO perhaps use Double.compare() instead? src/com/amazon/ion/impl/_Private_IonTextWriterBuilder.java (2 lines): - line 131: _timestamp_as_string = true; // TODO different from Printer - line 191: // TODO We shouldn't need a system here src/com/amazon/ion/util/Printer.java (2 lines): - line 459: // TODO datagram as list - line 469: // TODO doesn't work for datagram since it skips system values src/com/amazon/ion/system/IonSystemBuilder.java (1 line): - line 294: // TODO Would be nice to remove this since it's implied by the BWB. src/com/amazon/ion/impl/lite/IonClobLite.java (1 line): - line 85: // TODO use Charset directly. src/com/amazon/ion/impl/BlockedBuffer.java (1 line): - line 1242: // TODO can't we just move to the next block? src/com/amazon/ion/system/IonTextWriterBuilder.java (1 line): - line 90: /* TODO Discards local symbols and imports, retains open content. src/com/amazon/ion/SeekableReader.java (1 line): - line 88: // public void start(Span span); // TODO later src/com/amazon/ion/impl/IonReaderTreeUserX.java (1 line): - line 212: // TODO custom exception src/com/amazon/ion/impl/IonWriterSystemText.java (1 line): - line 663: // TODO amzn/ion-java/issues/57 This can lead to mixed newlines in the output. src/com/amazon/ion/util/JarInfo.java (1 line): - line 101: // TODO writeTo(IonWriter) src/com/amazon/ion/IonNumber.java (1 line): - line 27: public interface IonNumber // TODO amzn/ion-java/issues/53 Complete this interface src/com/amazon/ion/IonException.java (1 line): - line 115: * FIXME Doesn't work under Java 5 src/com/amazon/ion/impl/IonWriterSystemTree.java (1 line): - line 188: // TODO this makes an extra copy of the array src/com/amazon/ion/IonSystem.java (1 line): - line 97: // TODO amzn/ion-java/issues/38 Should we allow substituted imports as valid args? src/com/amazon/ion/impl/lite/TopLevelContext.java (1 line): - line 43: * TODO amzn/ion-java/issues/19 we cannot assume that the IonSystem knows the proper IVM src/com/amazon/ion/system/IonBinaryWriterBuilder.java (1 line): - line 113: // TODO Setting ivmMinimizing seems reasonable. Does the writer handle it? src/com/amazon/ion/impl/IonWriterUserBinary.java (1 line): - line 100: // TODO amzn/ion-java/issues/16 Doesn't copy annotations or field names. src/com/amazon/ion/Timestamp.java (1 line): - line 1132: // FIXME this will give incorrect message if c is a surrogate src/com/amazon/ion/impl/IonCharacterReader.java (1 line): - line 45: * FIXME does this properly account for surrogates? src/com/amazon/ion/impl/LocalSymbolTableImports.java (1 line): - line 32: // TODO amzn/ion-java/issues/37 Create specialized class to handle the common case where src/com/amazon/ion/impl/_Private_IonBinaryWriterBuilder.java (1 line): - line 104: // TODO The symtab value factory should not be needed. src/com/amazon/ion/impl/Base64Encoder.java (1 line): - line 543: // TODO I don't think this is strictly correct. src/com/amazon/ion/impl/lite/IonLobLite.java (1 line): - line 103: // TODO this is inefficient. Should stream directly from binary. src/com/amazon/ion/impl/SymbolTokenImpl.java (1 line): - line 70: * TODO amzn/ion-java#126 src/com/amazon/ion/system/IonWriterBuilderBase.java (1 line): - line 27: // TODO reuseInitialSymtabAfterFinish property src/com/amazon/ion/impl/_Private_IonWriterFactory.java (1 line): - line 52: // TODO the SUPPRESS here is a nasty discontinuity with other places src/com/amazon/ion/impl/SubstituteSymbolTable.java (1 line): - line 234: // TODO bad failure mode if next() called beyond end src/com/amazon/ion/SubstituteSymbolTableException.java (1 line): - line 24: // TODO amzn/ion-java/issues/40 Provide some useful info to assist callers with handling this