static Property parse ( final String line ) throws IOException { if ( ! line . startsWith ( "property " ) ) { throw new IOException ( "not a property: '" + line + "'" ) ; } String definition = line . substring ( "property " . length ( ) ) ; definition = definition . trim ( ) ; if ( ! definition . startsWith ( "list " ) ) { throw new IllegalArgumentException ( "not a list property: '" + line + "'" ) ; } definition = definition . substring ( "list " . length ( ) ) ; definition = definition . trim ( ) ; String [ ] parts = definition . split ( " +" , 3 ) ; if ( parts . length != 3 ) { throw new IOException ( "Expected three parts in list property " + "definition: '" + line + "'" ) ; } String countType = parts [ 0 ] ; String type = parts [ 1 ] ; String name = parts [ 2 ] ; DataType dataType ; DataType countDataType ; try { dataType = DataType . parse ( type ) ; countDataType = DataType . parse ( countType ) ; } catch ( IllegalArgumentException e ) { throw new IOException ( e . getMessage ( ) ) ; } return new ListProperty ( countDataType , name , dataType ) ; }
Parses a list - property header line .