GeoPubby  Version 0.1.0.0
ContentTypeNegotiator.Negotiation Class Reference
Collaboration diagram for ContentTypeNegotiator.Negotiation:

Package Functions

 Negotiation (List< MediaRangeSpec > ranges)
 
MediaRangeSpec negotiate ()
 

Private Member Functions

void evaluateVariantAlias (MediaRangeSpec variant, MediaRangeSpec isAliasFor)
 
void evaluateVariant (MediaRangeSpec variant)
 
void evaluateDefaultVariant (MediaRangeSpec variant)
 

Private Attributes

final List< MediaRangeSpecranges
 
MediaRangeSpec bestMatchingVariant = null
 
MediaRangeSpec bestDefaultVariant = null
 
double bestMatchingQuality = 0
 
double bestDefaultQuality = 0
 

Constructor & Destructor Documentation

◆ Negotiation()

Negotiation ( List< MediaRangeSpec ranges)
package
109  {
110  this.ranges = ranges;
111  }
final List< MediaRangeSpec > ranges
Definition: ContentTypeNegotiator.java:103

References ContentTypeNegotiator.Negotiation.ranges.

Member Function Documentation

◆ evaluateDefaultVariant()

void evaluateDefaultVariant ( MediaRangeSpec  variant)
private
143  {
144  if (variant.getQuality() > bestDefaultQuality) {
145  bestDefaultVariant = variant;
146  bestDefaultQuality = 0.00001 * variant.getQuality();
147  }
148  }
double bestDefaultQuality
Definition: ContentTypeNegotiator.java:107
MediaRangeSpec bestDefaultVariant
Definition: ContentTypeNegotiator.java:105

References ContentTypeNegotiator.Negotiation.bestDefaultQuality, ContentTypeNegotiator.Negotiation.bestDefaultVariant, and MediaRangeSpec.getQuality().

Referenced by ContentTypeNegotiator.Negotiation.negotiate().

◆ evaluateVariant()

void evaluateVariant ( MediaRangeSpec  variant)
private
139  {
140  evaluateVariantAlias(variant, variant);
141  }
void evaluateVariantAlias(MediaRangeSpec variant, MediaRangeSpec isAliasFor)
Definition: ContentTypeNegotiator.java:130

References ContentTypeNegotiator.Negotiation.evaluateVariantAlias().

Referenced by ContentTypeNegotiator.Negotiation.negotiate().

◆ evaluateVariantAlias()

void evaluateVariantAlias ( MediaRangeSpec  variant,
MediaRangeSpec  isAliasFor 
)
private
130  {
131  if (variant.getBestMatch(ranges) == null) return;
132  double q = variant.getBestMatch(ranges).getQuality();
133  if (q * variant.getQuality() > bestMatchingQuality) {
134  bestMatchingVariant = isAliasFor;
135  bestMatchingQuality = q * variant.getQuality();
136  }
137  }
double bestMatchingQuality
Definition: ContentTypeNegotiator.java:106
MediaRangeSpec bestMatchingVariant
Definition: ContentTypeNegotiator.java:104

References ContentTypeNegotiator.Negotiation.bestMatchingQuality, ContentTypeNegotiator.Negotiation.bestMatchingVariant, MediaRangeSpec.getBestMatch(), MediaRangeSpec.getQuality(), and ContentTypeNegotiator.Negotiation.ranges.

Referenced by ContentTypeNegotiator.Negotiation.evaluateVariant(), and ContentTypeNegotiator.Negotiation.negotiate().

◆ negotiate()

MediaRangeSpec negotiate ( )
package
113  {
114  Iterator<VariantSpec> it = variantSpecs.iterator();
115  while (it.hasNext()) {
116  VariantSpec variant = it.next();
117  if (variant.isDefault) {
118  evaluateDefaultVariant(variant.getMediaType());
119  }
120  evaluateVariant(variant.getMediaType());
121  Iterator<MediaRangeSpec> aliasIt = variant.getAliases().iterator();
122  while (aliasIt.hasNext()) {
123  MediaRangeSpec alias = (MediaRangeSpec) aliasIt.next();
124  evaluateVariantAlias(alias, variant.getMediaType());
125  }
126  }
128  }
List< VariantSpec > variantSpecs
Definition: ContentTypeNegotiator.java:10
void evaluateDefaultVariant(MediaRangeSpec variant)
Definition: ContentTypeNegotiator.java:143
void evaluateVariant(MediaRangeSpec variant)
Definition: ContentTypeNegotiator.java:139

References ContentTypeNegotiator.Negotiation.bestDefaultVariant, ContentTypeNegotiator.Negotiation.bestMatchingVariant, ContentTypeNegotiator.Negotiation.evaluateDefaultVariant(), ContentTypeNegotiator.Negotiation.evaluateVariant(), ContentTypeNegotiator.Negotiation.evaluateVariantAlias(), ContentTypeNegotiator.VariantSpec.getAliases(), ContentTypeNegotiator.VariantSpec.getMediaType(), ContentTypeNegotiator.VariantSpec.isDefault, and ContentTypeNegotiator.variantSpecs.

Referenced by ContentTypeNegotiator.getBestMatch().

Member Data Documentation

◆ bestDefaultQuality

double bestDefaultQuality = 0
private

◆ bestDefaultVariant

◆ bestMatchingQuality

double bestMatchingQuality = 0
private

◆ bestMatchingVariant

◆ ranges