private static Schema parseSchema(URI uri, InputStream in) throws IOException { try { return new Schema.Parser().parse(in); } catch (RuntimeException e) { throw new SchemaNotFoundException("Failed to parse schema at " + uri, e); } }
private static Schema parseSchema(String literal) { try { return new Schema.Parser().parse(literal); } catch (RuntimeException e) { throw new SchemaNotFoundException("Failed to parse schema: " + literal, e); } }
throw new SchemaNotFoundException("If the schema is not a JSON string, a scheme must be specified in the URI " + "(ex: dataset:, view:, resource:, file:, hdfs:, etc)."); throw new SchemaNotFoundException("Cannot read schema of missing dataset: " + uri, e); } catch (IOException e) { throw new SchemaNotFoundException("Failed while reading " + uri + ": " + e.getMessage(), e);
private static Schema parseSchema(String literal) { try { return new Schema.Parser().parse(literal); } catch (RuntimeException e) { throw new SchemaNotFoundException( "Failed to parse schema: " + literal, e); } }
private static Schema parseSchema(URI uri, InputStream in) throws IOException { try { return new Schema.Parser().parse(in); } catch (RuntimeException e) { throw new SchemaNotFoundException("Failed to parse schema at " + uri, e); } }
@Override public int getEntityVersion(String tableName, String entityName, EntitySchema schema) { for (Entry<Integer, EntitySchema> entry : getEntitySchemas(tableName, entityName).entrySet()) { if (schema.equals(entry.getValue())) { return entry.getKey(); } } String msg = "Could not find managed version for " + tableName + ", " + entityName + " that matches " + schema; LOG.error(msg); throw new SchemaNotFoundException(msg); }
@Override public int getEntityVersion(String tableName, String entityName, EntitySchema schema) { for (Entry<Integer, EntitySchema> entry : getEntitySchemas(tableName, entityName).entrySet()) { if (schema.equals(entry.getValue())) { return entry.getKey(); } } String msg = "Could not find managed version for " + tableName + ", " + entityName + " that matches " + schema; LOG.error(msg); throw new SchemaNotFoundException(msg); }
private String getGreatestEntitySchemaString(ManagedSchema managedSchema) { int greatestVersion = -1; String greatestVersionedSchema = null; for (Entry<String, String> entry : managedSchema.getEntitySchemas() .entrySet()) { int version = Integer.parseInt(entry.getKey()); if (version > greatestVersion) { greatestVersion = version; greatestVersionedSchema = entry.getValue(); } } if (greatestVersionedSchema == null) { String msg = "No schema versions for " + managedSchema.getTable() + ", " + managedSchema.getName(); LOG.error(msg); throw new SchemaNotFoundException(msg); } return greatestVersionedSchema; }
private String getGreatestEntitySchemaString(ManagedSchema managedSchema) { int greatestVersion = -1; String greatestVersionedSchema = null; for (Entry<String, String> entry : managedSchema.getEntitySchemas() .entrySet()) { int version = Integer.parseInt(entry.getKey()); if (version > greatestVersion) { greatestVersion = version; greatestVersionedSchema = entry.getValue(); } } if (greatestVersionedSchema == null) { String msg = "No schema versions for " + managedSchema.getTable() + ", " + managedSchema.getName(); LOG.error(msg); throw new SchemaNotFoundException(msg); } return greatestVersionedSchema; }
throw new SchemaNotFoundException( "Cannot read schema of missing dataset: " + uri, e); } catch (IOException e) { throw new SchemaNotFoundException( "Failed while reading " + uri + ": " + e.getMessage(), e);
@Override public ENTITY mapToEntity(Result result) { ManagedSchemaEntityVersion versionRecord = managedSchemaEntityVersionEntityMapper .mapToEntity(result); int resultVersion = 0; if (versionRecord != null) { resultVersion = versionRecord.getSchemaVersion(); } if (entityMappers.containsKey(resultVersion)) { return entityMappers.get(resultVersion).mapToEntity(result); } else { schemaManager.refreshManagedSchemaCache(tableName, entityName); updateEntityMappers(); if (entityMappers.containsKey(resultVersion)) { return entityMappers.get(resultVersion).mapToEntity(result); } else { String msg = "Could not find schema for " + tableName + ", " + entityName + ", with version " + resultVersion; LOG.error(msg); throw new SchemaNotFoundException(msg); } } }
@Override public ENTITY mapToEntity(Result result) { ManagedSchemaEntityVersion versionRecord = managedSchemaEntityVersionEntityMapper .mapToEntity(result); int resultVersion = 0; if (versionRecord != null) { resultVersion = versionRecord.getSchemaVersion(); } if (entityMappers.containsKey(resultVersion)) { return entityMappers.get(resultVersion).mapToEntity(result); } else { schemaManager.refreshManagedSchemaCache(tableName, entityName); updateEntityMappers(); if (entityMappers.containsKey(resultVersion)) { return entityMappers.get(resultVersion).mapToEntity(result); } else { String msg = "Could not find schema for " + tableName + ", " + entityName + ", with version " + resultVersion; LOG.error(msg); throw new SchemaNotFoundException(msg); } } }
@Override public EntitySchema getEntitySchema(String tableName, String entityName, int version) { ManagedSchema managedSchema = getManagedSchema(tableName, entityName); KeyEntitySchemaParser<?, ?> schemaParser = getSchemaParser(managedSchema .getSchemaType()); if (!managedSchema.getEntitySchemas().containsKey(String.valueOf(version))) { // didn't contain the schema version, refresh the schema cache and refetch // the managed schema. refreshManagedSchemaCache(tableName, entityName); managedSchema = getManagedSchema(tableName, entityName); } String schema = managedSchema.getEntitySchemas().get( String.valueOf(version)); if (schema != null) { return schemaParser.parseEntitySchema(schema); } else { String msg = "Could not find managed schema for " + tableName + ", " + entityName + ", and version " + Integer.toString(version); LOG.error(msg); throw new SchemaNotFoundException(msg); } }
@Override public EntitySchema getEntitySchema(String tableName, String entityName, int version) { ManagedSchema managedSchema = getManagedSchema(tableName, entityName); KeyEntitySchemaParser<?, ?> schemaParser = getSchemaParser(managedSchema .getSchemaType()); if (!managedSchema.getEntitySchemas().containsKey(String.valueOf(version))) { // didn't contain the schema version, refresh the schema cache and refetch // the managed schema. refreshManagedSchemaCache(tableName, entityName); managedSchema = getManagedSchema(tableName, entityName); } String schema = managedSchema.getEntitySchemas().get( String.valueOf(version)); if (schema != null) { return schemaParser.parseEntitySchema(schema); } else { String msg = "Could not find managed schema for " + tableName + ", " + entityName + ", and version " + Integer.toString(version); LOG.error(msg); throw new SchemaNotFoundException(msg); } }
/** * Get the ManagedSchema entity for the tableName, entityName managed schema. * * @param tableName * The table name of the managed schema. * @param entityName * The entity name of the managed schema. * @return The ManagedSchema entity * @throws SchemaNotFoundException */ private ManagedSchema getManagedSchema(String tableName, String entityName) { ManagedSchema managedSchema = getManagedSchemaFromSchemaMap(tableName, entityName); if (managedSchema == null) { refreshManagedSchemaCache(tableName, entityName); managedSchema = getManagedSchemaFromSchemaMap(tableName, entityName); if (managedSchema == null) { String msg = "Could not find managed schemas for " + tableName + ", " + entityName; throw new SchemaNotFoundException(msg); } } return managedSchema; }
/** * Get the ManagedSchema entity for the tableName, entityName managed schema. * * @param tableName * The table name of the managed schema. * @param entityName * The entity name of the managed schema. * @return The ManagedSchema entity * @throws SchemaNotFoundException */ private ManagedSchema getManagedSchema(String tableName, String entityName) { ManagedSchema managedSchema = getManagedSchemaFromSchemaMap(tableName, entityName); if (managedSchema == null) { refreshManagedSchemaCache(tableName, entityName); managedSchema = getManagedSchemaFromSchemaMap(tableName, entityName); if (managedSchema == null) { String msg = "Could not find managed schemas for " + tableName + ", " + entityName; throw new SchemaNotFoundException(msg); } } return managedSchema; }