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