@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }