@Override
  protected ItdTypeDetailsProvidingMetadataItem getMetadata(
      final String metadataIdentificationString,
      final JavaType aspectName,
      final PhysicalTypeMetadata governorPhysicalTypeMetadata,
      final String itdFilename) {
    // Acquire bean info (we need getters details, specifically)
    final JavaType javaType = JsonMetadata.getJavaType(metadataIdentificationString);
    final LogicalPath path = JsonMetadata.getPath(metadataIdentificationString);

    // We need to parse the annotation, if it is not present we will simply
    // get the default annotation values
    final JsonAnnotationValues annotationValues =
        new JsonAnnotationValues(governorPhysicalTypeMetadata);

    String plural = javaType.getSimpleTypeName() + "s";
    final PluralMetadata pluralMetadata =
        (PluralMetadata) getMetadataService().get(PluralMetadata.createIdentifier(javaType, path));
    if (pluralMetadata != null) {
      plural = pluralMetadata.getPlural();
    }

    return new JsonMetadata(
        metadataIdentificationString,
        aspectName,
        governorPhysicalTypeMetadata,
        plural,
        annotationValues);
  }
 @Override
 protected String getGovernorPhysicalTypeIdentifier(final String metadataIdentificationString) {
   final JavaType javaType = JsonMetadata.getJavaType(metadataIdentificationString);
   final LogicalPath path = JsonMetadata.getPath(metadataIdentificationString);
   final String physicalTypeIdentifier = PhysicalTypeIdentifier.createIdentifier(javaType, path);
   return physicalTypeIdentifier;
 }