public static String getJsonDatatypeFromDatatypeIri ( String datatypeIri ) { switch ( datatypeIri ) { case DatatypeIdValue . DT_ITEM : return DatatypeIdImpl . JSON_DT_ITEM ; case DatatypeIdValue . DT_GLOBE_COORDINATES : return DatatypeIdImpl . JSON_DT_GLOBE_COORDINATES ; case DatatypeIdValue . DT_URL : return DatatypeIdImpl . JSON_DT_URL ; case DatatypeIdValue . DT_COMMONS_MEDIA : return DatatypeIdImpl . JSON_DT_COMMONS_MEDIA ; case DatatypeIdValue . DT_TIME : return DatatypeIdImpl . JSON_DT_TIME ; case DatatypeIdValue . DT_QUANTITY : return DatatypeIdImpl . JSON_DT_QUANTITY ; case DatatypeIdValue . DT_STRING : return DatatypeIdImpl . JSON_DT_STRING ; case DatatypeIdValue . DT_MONOLINGUAL_TEXT : return DatatypeIdImpl . JSON_DT_MONOLINGUAL_TEXT ; case DatatypeIdValue . DT_PROPERTY : return DatatypeIdImpl . JSON_DT_PROPERTY ; default : //We apply the reverse algorithm of JacksonDatatypeId::getDatatypeIriFromJsonDatatype Matcher matcher = DATATYPE_ID_PATTERN . matcher ( datatypeIri ) ; if ( ! matcher . matches ( ) ) { throw new IllegalArgumentException ( "Unknown datatype: " + datatypeIri ) ; } StringBuilder jsonDatatypeBuilder = new StringBuilder ( ) ; for ( char ch : StringUtils . uncapitalize ( matcher . group ( 1 ) ) . toCharArray ( ) ) { if ( Character . isUpperCase ( ch ) ) { jsonDatatypeBuilder . append ( ' ' ) . append ( Character . toLowerCase ( ch ) ) ; } else { jsonDatatypeBuilder . append ( ch ) ; } } return jsonDatatypeBuilder . toString ( ) ; } }
Returns the JSON datatype for the property datatype as represented by the given WDTK datatype IRI string .