| Package | Description |
|---|---|
| org.foxlabs.validation | |
| org.foxlabs.validation.constraint | |
| org.foxlabs.validation.metadata |
| Modifier and Type | Method and Description |
|---|---|
Constraint<? super V> |
ConstrainedMap.Entry.getConstraint()
Returns constraint to be used for value validation.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ArrayElementConstraint<V>
This class provides
SequenceElementConstraint implementation
that performs validation of array elements. |
class |
CapitalizeAllConstraint
This class provides
CorrectConstraint implementation that
converts to upper case first letters of all words in a string. |
class |
CapitalizeConstraint
This class provides
CorrectConstraint implementation that
converts to upper case first letter of first word in a string. |
class |
CascadeConstraint<V>
This class provides
Constraint implementation that performs
cascade validation on an entity. |
class |
CheckConstraint<V>
This class provides base implementation of the
Constraint
interface that only checks value and doesn't modify it. |
class |
CoalesceConstraint
This class provides
CorrectConstraint implementation that
replaces all whitespaces with single character in a string. |
class |
CollectionElementConstraint<V>
This class provides
SequenceElementConstraint implementation
that performs validation of collection elements. |
class |
ConstraintAggregation<V>
This class provides base implementation of the
Constraint that
encapsulates other constraints to validate a value. |
class |
ConstraintComposition<V>
This class provides
ConstraintAggregation implementation that
is composition of the encapsulated constraints. |
class |
ConstraintConjunction<V>
This class provides
ConstraintAggregation implementation that
is conjunction of the encapsulated constraints. |
class |
ConstraintDisjunction<V>
This class provides
ConstraintAggregation implementation that
is disjunction of the encapsulated constraints. |
class |
ConstraintGroupWrapper<V>
This class provides ability to override groups of another constraint.
|
class |
ConstraintMessageWrapper<V>
This class provides ability to override error message of another constraint.
|
class |
ConstraintNegation<V>
This class provides
ConstraintAggregation implementation that
is negation of the encapsulated constraints. |
class |
ConstraintWrapper<V>
This class provides convenient implementation of the
Constraint
that can be subclassed to wrap another constraint. |
class |
CorrectConstraint<V>
This class provides base implementation of the
Constraint
interface that modifies (corrects) value and never throws
ConstraintViolationException . |
class |
CustomConstraint<V>
This class provides
Constraint implementation for custom
constraints. |
class |
DefaultValueConstraint<V>
This class provides
CorrectConstraint implementation that
replaces a null value with default value. |
class |
DespaceConstraint
This class provides
CorrectConstraint implementation that
removes all whitespaces from a string. |
class |
EmailAddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid email address. |
class |
EnumerationConstraint<V>
This class provides base implementation of the
CheckConstraint
that checks whether the specified value is one of the allowed constants. |
static class |
EnumerationConstraint.Default<V>
This class provides default
EnumerationConstraint
implementation based on static set of constants. |
class |
FileExistsConstraint
This class provides
CheckConstraint implementation that checks
existence of a file or directory. |
class |
FileSizeConstraint
This class provides
CheckConstraint implementation that checks
whether size of a file is within allowed minimum and maximum bounds. |
class |
FutureDateConstraint
This class provides
CheckConstraint implementation that checks
whether a date is date in the future. |
class |
HostnameConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid internet hostname according to
RFC 1123. |
class |
IdentifierConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid identifier. |
class |
IdentityConstraint
This class provides
Constraint implementation that just returns
value unchanged. |
class |
IgnoreCaseEnumerationConstraint
This class provides
EnumerationConstraint implementation based
on static set of case insensitive strings. |
class |
IllegalCharsetConstraint
This class provides
CheckConstraint implementation that checks
whether a string not contains disallowed characters. |
class |
ImageSizeConstraint<V>
This class provides base implementation of the
Constraint that
checks whether the size of an image is within maximum bounds. |
static class |
ImageSizeConstraint.AwtCodec
This class provides
ImageSizeConstraint implementation for
java.awt.Image type. |
static class |
ImageSizeConstraint.RawCodec
This class provides
ImageSizeConstraint implementation for
byte[] type. |
class |
InetAddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid internet address (can be either hostname or IP
address). |
class |
InstanceOfConstraint
This class provides
CheckConstraint implementation that checks
whether a value is instance of one of allowed types. |
class |
Ip4AddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid IPv4 address. |
class |
Ip6AddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid IPv6 address. |
class |
IpAddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid IPv4 or IPv6 address. |
class |
IsFalseConstraint
This class provides
CheckConstraint implementation that checks
whether a boolean value is false . |
class |
IsNullConstraint
This class provides
CheckConstraint implementation that checks
whether a value is null . |
class |
IsTrueConstraint
This class provides
CheckConstraint implementation that checks
whether a boolean value is true . |
class |
LegalCharsetConstraint
This class provides
CheckConstraint implementation that checks
whether a string contains allowed characters only. |
class |
LogLevelConstraint
This class provides
EnumerationConstraint implementation for
java.util.logging.Level known constants. |
class |
LowerCaseConstraint
This class provides
CorrectConstraint implementation that
converts a string to lower case. |
class |
MapKeyConstraint<V>
This class provides
SequenceElementConstraint implementation
that performs validation of map keys. |
class |
MapValueConstraint<V>
This class provides
SequenceElementConstraint implementation
that performs validation of map values. |
class |
MaxLengthConstraint
This class provides
CorrectConstraint implementation that
allows to cut length of a string. |
class |
MimeTypeConstraint
This class provides
RegexConstraint implementation that checks
whether a string is valid MIME type representation. |
class |
NotBlankConstraint
This class provides
CheckConstraint implementation that
checks whether a string is not null or empty. |
class |
NotEmptyConstraint<V>
This class provides base implementation of the
CheckConstraint
that checks whether a value is not empty. |
static class |
NotEmptyConstraint.ArrayType
This class provides
NotEmptyConstraint implementation for
all array types. |
static class |
NotEmptyConstraint.CollectionType
This class provides
NotEmptyConstraint implementation for
all JDK java.util.Collection types. |
static class |
NotEmptyConstraint.MapType
This class provides
NotEmptyConstraint implementation for
all JDK java.util.Map types. |
static class |
NotEmptyConstraint.StringType
This class provides
NotEmptyConstraint implementation for
java.lang.String type. |
class |
NotNullConstraint
This class provides
CheckConstraint implementation that checks
whether a value is not null . |
class |
NullifyConstraint
This class provides
CorrectConstraint implementation that
replaces an empty string with null . |
class |
PastDateConstraint
This class provides
CheckConstraint implementation that checks
whether a date is date in the past. |
class |
PropertyComparisonConstraint<V>
This class provides base implementation of the
CheckConstraint
that applies binary comparison operator to a value and other property. |
static class |
PropertyComparisonConstraint.EqualToOp<V>
This class provides
PropertyComparisonConstraint
implementation that applies == operator to a value and
other property. |
static class |
PropertyComparisonConstraint.GreaterThanEqualOp<V>
This class provides
PropertyComparisonConstraint
implementation that applies >= operator to a value and
other property. |
static class |
PropertyComparisonConstraint.GreaterThanOp<V>
This class provides
PropertyComparisonConstraint
implementation that applies > operator to a value and
other property. |
static class |
PropertyComparisonConstraint.LessThanEqualOp<V>
This class provides
PropertyComparisonConstraint
implementation that applies <= operator to a value and
other property. |
static class |
PropertyComparisonConstraint.LessThanOp<V>
This class provides
PropertyComparisonConstraint
implementation that applies < operator to a value and
other property. |
static class |
PropertyComparisonConstraint.NotEqualToOp<V>
This class provides
PropertyComparisonConstraint
implementation that applies != operator to a value and
other property. |
class |
RangeConstraint<V>
This class provides
CheckConstraint implementation that checks
whether a value is within allowed minimum and maximum range. |
class |
RegexConstraint
This class provides
CheckConstraint implementation that checks
whether a string matches the regular expression. |
class |
RemoveNullElementsConstraint<V>
This class provides base implementation of the
CorrectConstraint
that removes all null elements from a sequence. |
static class |
RemoveNullElementsConstraint.ArrayType
This class provides
RemoveNullElementsConstraint
implementation for all array types. |
static class |
RemoveNullElementsConstraint.CollectionType
This class provides
RemoveNullElementsConstraint
implementation for all JDK java.util.Collection types. |
class |
ReplaceConstraint
This class provides
CorrectConstraint implementation that
Replaces each substring of a string that matches the given regular
expression with the given replacement. |
class |
SequenceElementConstraint<V,E>
This class provides base implementation of the
Constraint that
uses another constraint to validate elements of a sequence. |
class |
SetNullConstraint
This class provides
CorrectConstraint implementation that
replaces a value with null . |
class |
SizeConstraint<V>
This class provides base implementation of the
CheckConstraint
that checks whether the size of a value is within allowed minimum and
maximum bounds. |
static class |
SizeConstraint.ArrayType
This class provides
SizeConstraint implementation for all
array types. |
static class |
SizeConstraint.CollectionType
This class provides
SizeConstraint implementation for all
JDK java.util.Collection types. |
static class |
SizeConstraint.MapType
This class provides
SizeConstraint implementation for all
JDK java.util.Map types. |
static class |
SizeConstraint.StringType
This class provides
SizeConstraint implementation for
java.lang.String type. |
class |
SupportedEncodingConstraint
This class provides
EnumerationConstraint implementation that
checks whether a string is in list of available charset names supported by
JRE. |
class |
SupportedImageMimeConstraint
This class provides
EnumerationConstraint implementation that
checks whether a string is in list of available image MIME types supported
by javax.imageio.ImageIO . |
class |
SupportedLocaleConstraint
This class provides
EnumerationConstraint implementation that
checks whether a locale is in list of available locales supported by JRE. |
class |
SupportedTimeZoneConstraint
This class provides
EnumerationConstraint implementation that
checks whether a time zone is in list of available time zones supported by
JRE. |
class |
SysdateConstraint
This class provides
CorrectConstraint implementation that
replaces a null date with current system date. |
class |
TrimConstraint
This class provides
CorrectConstraint implementation that
removes leading and trailing whitespaces from a string. |
class |
UpperCaseConstraint
This class provides
CorrectConstraint implementation that
converts a string to upper case. |
class |
UriAddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid URI reference. |
class |
UrlAddressConstraint
This class provides
CheckConstraint implementation that checks
whether a string is valid URL reference. |
| Modifier and Type | Field and Description |
|---|---|
protected Constraint<E> |
SequenceElementConstraint.constraint
Constraint to be used to validate elements of a sequence.
|
protected Constraint<V> |
ConstraintWrapper.constraint
Wrapped constraint.
|
protected Constraint<? super V>[] |
ConstraintAggregation.constraints
Array of constraints to be used for validation of a value.
|
| Modifier and Type | Method and Description |
|---|---|
static <T extends Constraint<?>> |
ConstraintFactory.findConstraint(Constraint<?> wrapper,
Class<T> requiredType)
Searches constraint by its type in the specified one.
|
| Modifier and Type | Method and Description |
|---|---|
static <V> Constraint<V> |
ConstraintFactory.and(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.and(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.and(Collection<Constraint<? super V>> constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.and(Constraint<? super V>... constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<? super V[]> |
ConstraintFactory.arrayElement(Constraint<V> constraint)
Returns constraint that performs validation of array elements.
|
static <V> Constraint<V> |
ConstraintFactory.arrayMaxSize(int max)
Returns constraint that checks whether the length of an array is not
greater than allowed maximum length.
|
static <V> Constraint<V> |
ConstraintFactory.arrayMinSize(int min)
Returns constraint that checks whether the length of an array is not
less than allowed minimum length.
|
static <V> Constraint<V> |
ConstraintFactory.arrayNotEmpty()
Returns constraint that checks whether an array is not empty.
|
static <V> Constraint<V> |
ConstraintFactory.arrayRemoveNullElements()
Returns constraint that removes all
null elements from an
array. |
static <V> Constraint<V> |
ConstraintFactory.arraySize(int min,
int max)
Returns constraint that checks whether the length of an array is within
allowed minimum and maximum bounds.
|
static Constraint<Image> |
ConstraintFactory.awtImageSize(int maxWidth,
int maxHeight,
ImageAdjust adjust)
Returns constraint that checks whether the size of an image is within
maximum bounds.
|
static Constraint<String> |
ConstraintFactory.capitalize()
Returns constraint that converts to upper case first letter of first
word in a string.
|
static Constraint<String> |
ConstraintFactory.capitalizeAll()
Returns constraint that converts to upper case first letters of all
words in a string.
|
static <V> Constraint<V> |
ConstraintFactory.cascade(Class<V> type)
Returns constraint that performs cascade validation on an entity.
|
static <V> Constraint<V> |
ConstraintFactory.cascade(EntityMetaData<V> metadata)
Returns constraint that performs cascade validation on an entity.
|
static Constraint<String> |
ConstraintFactory.coalesce()
Returns constraint that replaces all whitespaces with
' '
character in a string. |
static Constraint<String> |
ConstraintFactory.coalesce(char replacement,
boolean multiline)
Returns constraint that replaces all whitespaces with single character
in a string.
|
static <V> Constraint<? super Collection<V>> |
ConstraintFactory.collectionElement(Constraint<V> constraint)
Returns constraint that performs validation of collection elements.
|
static <V extends Collection<?>> |
ConstraintFactory.collectionMaxSize(int max)
Returns constraint that checks whether the size of a collection is not
greater than allowed maximum size.
|
static <V extends Collection<?>> |
ConstraintFactory.collectionMinSize(int min)
Returns constraint that checks whether the size of a collection is not
less than allowed minimum size.
|
static <V extends Collection<?>> |
ConstraintFactory.collectionNotEmpty()
Returns constraint that checks whether a collection is not empty.
|
static <V extends Collection<?>> |
ConstraintFactory.collectionRemoveNullElements()
Returns constraint that removes all
null elements from a
collection. |
static <V extends Collection<?>> |
ConstraintFactory.collectionSize(int min,
int max)
Returns constraint that checks whether the size of a collection is
within allowed minimum and maximum bounds.
|
static <V> Constraint<? super V> |
ConstraintFactory.createConstraint(Type type,
Annotation[] annotations,
String namespace,
ValidationDefaults defaults)
Creates a new constraint for the specified generic value type using
configuration from the specified annotations.
|
static <V> Constraint<V> |
ConstraintFactory.defaultValue(V defaultValue)
Returns constraint that replaces a
null value with default
value. |
static Constraint<String> |
ConstraintFactory.despace()
Returns constraint that removes all whitespaces from a string.
|
static Constraint<File> |
ConstraintFactory.directoryExists()
Returns constraint that checks existence of a directory.
|
static Constraint<String> |
ConstraintFactory.emailAddress()
Returns constraint that checks whether a string is valid email address.
|
static <V extends Enum<V>> |
ConstraintFactory.enumeration(Class<V> type)
Returns constraint that lists constants of the specified enumeration
type.
|
static <V> Constraint<V> |
ConstraintFactory.enumeration(Class<V> type,
Collection<V> constants)
Returns constraint that checks whether a value is one of the allowed
constants.
|
static <V> Constraint<V> |
ConstraintFactory.enumeration(Class<V> type,
V... constants)
Returns constraint that checks whether a value is one of the allowed
constants.
|
static <V> Constraint<V> |
ConstraintFactory.enumeration(Collection<V> constants)
Returns constraint that checks whether a value is one of the allowed
constants.
|
static <V> Constraint<V> |
ConstraintFactory.enumeration(V... constants)
Returns constraint that checks whether a value is one of the allowed
constants.
|
static <V> Constraint<V> |
ConstraintFactory.eq(Class<V> type,
String property)
Returns constraint that applies
== operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.eq(Class<V> type,
String property,
Comparator<V> comparator)
Returns constraint that applies
== operator to a value
and the specified property. |
static Constraint<File> |
ConstraintFactory.fileExists()
Returns constraint that checks existence of a file.
|
static Constraint<File> |
ConstraintFactory.fileSize(long min,
long max)
Returns constraint that checks whether size of a file is within allowed
minimum and maximum bounds.
|
static Constraint<Date> |
ConstraintFactory.futureDate()
Returns constraint that checks whether a date is date in the future.
|
Constraint<E> |
SequenceElementConstraint.getConstraint()
Returns constraint to be used to validate elements of a sequence.
|
Constraint<?> |
ConstraintViolationException.getConstraint()
Returns constraint that is source of this exception.
|
Constraint<V> |
ConstraintWrapper.getConstraint()
Returns wrapped constraint.
|
Constraint<? super V>[] |
ConstraintAggregation.getConstraints()
Returns array of constraints to be used for validation of a value.
|
static <V extends Comparable<? super V>> |
ConstraintFactory.gt(Class<V> type,
String property)
Returns constraint that applies
> operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.gt(Class<V> type,
String property,
Comparator<V> comparator)
Returns constraint that applies
> operator to a value
and the specified property. |
static <V extends Comparable<? super V>> |
ConstraintFactory.gte(Class<V> type,
String property)
Returns constraint that applies
>= operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.gte(Class<V> type,
String property,
Comparator<V> comparator)
Returns constraint that applies
>= operator to a value
and the specified property. |
static Constraint<String> |
ConstraintFactory.hostname()
Returns constraint that checks whether a string is valid internet
hostname.
|
static Constraint<String> |
ConstraintFactory.identifier()
Returns constraint that checks whether a string is valid identifier.
|
static <V> Constraint<? super V> |
ConstraintFactory.identity()
Returns constraint that just returns value unchanged.
|
static Constraint<String> |
ConstraintFactory.ignoreCaseEnumeration(Collection<String> constants)
Returns constraint that checks whether a string is one of the allowed
strings ignoring case considerations.
|
static Constraint<String> |
ConstraintFactory.ignoreCaseEnumeration(String... constants)
Returns constraint that checks whether a string is one of the allowed
strings ignoring case considerations.
|
static Constraint<String> |
ConstraintFactory.illegalCharset(String pattern)
Returns constraint that checks whether a string not contains disallowed
characters.
|
static Constraint<String> |
ConstraintFactory.illegalCharset(org.foxlabs.util.UnicodeSet charset)
Returns constraint that checks whether a string not contains disallowed
characters.
|
static Constraint<String> |
ConstraintFactory.inetAddress()
Returns constraint that checks whether a string is valid internet
address (can be either hostname or IP address).
|
static <V> Constraint<? super V> |
ConstraintFactory.instanceOf(Class<?>... types)
Returns constraint that checks whether a value is instance of one of the
specified types.
|
static Constraint<String> |
ConstraintFactory.ip4Address()
Returns constraint that checks whether a string is valid IPv4 address.
|
static Constraint<String> |
ConstraintFactory.ip6Address()
Returns constraint that checks whether a string is valid IPv6 address.
|
static Constraint<String> |
ConstraintFactory.ipAddress()
Returns constraint that checks whether a string is valid IPv4 or IPv6
address.
|
static Constraint<Boolean> |
ConstraintFactory.isFalse()
Returns constraint that checks whether a boolean value is
false . |
static <V> Constraint<? super V> |
ConstraintFactory.isNull()
Returns constraint that checks whether a value is
null . |
static Constraint<Boolean> |
ConstraintFactory.isTrue()
Returns constraint that checks whether a boolean value is
true . |
static <V> Constraint<V> |
ConstraintFactory.join(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.join(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.join(Collection<Constraint<? super V>> constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.join(Constraint<? super V>... constraints)
Returns constraint that is composition of the specified constraints.
|
static Constraint<String> |
ConstraintFactory.legalCharset(String pattern)
Returns constraint that checks whether a string contains allowed
characters only.
|
static Constraint<String> |
ConstraintFactory.legalCharset(org.foxlabs.util.UnicodeSet charset)
Returns constraint that checks whether a string contains allowed
characters only.
|
static Constraint<Level> |
ConstraintFactory.logLevel()
Returns constraint that checks whether a log level is in list of known
log levels.
|
static Constraint<String> |
ConstraintFactory.lowerCase()
Returns constraint that converts a string to lower case.
|
static <V extends Comparable<? super V>> |
ConstraintFactory.lt(Class<V> type,
String property)
Returns constraint that applies
< operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.lt(Class<V> type,
String property,
Comparator<V> comparator)
Returns constraint that applies
< operator to a value
and the specified property. |
static <V extends Comparable<? super V>> |
ConstraintFactory.lte(Class<V> type,
String property)
Returns constraint that applies
<= operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.lte(Class<V> type,
String property,
Comparator<V> comparator)
Returns constraint that applies
<= operator to a value
and the specified property. |
static <V> Constraint<? super Map<V,Object>> |
ConstraintFactory.mapKey(Constraint<V> constraint)
Returns constraint that performs validation of map keys.
|
static <V extends Map<?,?>> |
ConstraintFactory.mapMaxSize(int max)
Returns constraint that checks whether the size of a map is not greater
than allowed maximum size.
|
static <V extends Map<?,?>> |
ConstraintFactory.mapMinSize(int min)
Returns constraint that checks whether the size of a map is not less
than allowed minimum size.
|
static <V extends Map<?,?>> |
ConstraintFactory.mapNotEmpty()
Returns constraint that checks whether a map is not empty.
|
static <V extends Map<?,?>> |
ConstraintFactory.mapSize(int min,
int max)
Returns constraint that checks whether the size of a map is within
allowed minimum and maximum bounds.
|
static <V> Constraint<? super Map<Object,V>> |
ConstraintFactory.mapValue(Constraint<V> constraint)
Returns constraint that performs validation of map values.
|
static <V extends Comparable<? super V>> |
ConstraintFactory.max(V max)
Returns constraint that checks whether a value is not greater than
allowed maximum value.
|
static <V> Constraint<V> |
ConstraintFactory.max(V max,
Comparator<V> comparator)
Returns constraint that checks whether a value is not greater than
allowed maximum value.
|
static Constraint<String> |
ConstraintFactory.maxLength(int limit)
Returns constraint that allows to cut length of a string.
|
static Constraint<String> |
ConstraintFactory.mimetype()
Returns constraint that checks whether a string is valid mime type
representation.
|
static <V extends Comparable<? super V>> |
ConstraintFactory.min(V min)
Returns constraint that checks whether a value is not less than
allowed minimum value.
|
static <V> Constraint<V> |
ConstraintFactory.min(V min,
Comparator<V> comparator)
Returns constraint that checks whether a value is not less than
allowed minimum value.
|
static <V> Constraint<V> |
ConstraintFactory.ne(Class<V> type,
String property)
Returns constraint that applies
!= operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.ne(Class<V> type,
String property,
Comparator<V> comparator)
Returns constraint that applies
!= operator to a value
and the specified property. |
static <V> Constraint<V> |
ConstraintFactory.not(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.not(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.not(Collection<Constraint<? super V>> constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.not(Constraint<? super V>... constraints)
Returns constraint that is negation of the specified constraints.
|
static Constraint<String> |
ConstraintFactory.notBlank()
Returns constraint that checks whether a string is not
null
or empty. |
static <V> Constraint<? super V> |
ConstraintFactory.notNull()
Returns constraint that checks whether a value is not
null . |
static Constraint<String> |
ConstraintFactory.nullify()
Returns constraint that replaces an empty string with
null . |
static <V> Constraint<V> |
ConstraintFactory.or(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is disjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is disjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Collection<Constraint<? super V>> constraints)
Returns constraint that is disjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Constraint<? super V>... constraints)
Returns constraint that is disjunction of the specified constraints.
|
static Constraint<Date> |
ConstraintFactory.pastDate()
Returns constraint that checks whether a date is date in the past.
|
static <V extends Comparable<? super V>> |
ConstraintFactory.range(V min,
V max)
Returns constraint that checks whether a value is within allowed
minimum and maximum range.
|
static <V> Constraint<V> |
ConstraintFactory.range(V min,
V max,
Comparator<V> comparator)
Returns constraint that checks whether a value is within allowed
minimum and maximum range.
|
static Constraint<byte[]> |
ConstraintFactory.rawImageSize(int maxWidth,
int maxHeight,
ImageAdjust adjust)
Returns constraint that checks whether the size of a raw image is within
maximum bounds.
|
static Constraint<String> |
ConstraintFactory.regex(String pattern)
Returns constraint that checks whether a string matches the regular
expression.
|
static Constraint<String> |
ConstraintFactory.regex(String pattern,
int flags)
Returns constraint that checks whether a string matches the regular
expression.
|
static Constraint<String> |
ConstraintFactory.replace(String regex,
String replacement)
Returns constraint that replaces each substring of a string that matches
the given regular expression with the given replacement.
|
static Constraint<String> |
ConstraintFactory.replace(String regex,
String replacement,
int flags)
Returns constraint that replaces each substring of a string that matches
the given regular expression with the given replacement.
|
static <V> Constraint<V> |
ConstraintFactory.setNull()
Returns constraint that replaces a value with
null . |
static Constraint<String> |
ConstraintFactory.stringMaxSize(int max)
Returns constraint that checks whether the length of a string is not
greater than allowed maximum length.
|
static Constraint<String> |
ConstraintFactory.stringMinSize(int min)
Returns constraint that checks whether the length of a string is not
less than allowed minimum length.
|
static Constraint<String> |
ConstraintFactory.stringNotEmpty()
Returns constraint that checks whether a string is not empty.
|
static Constraint<String> |
ConstraintFactory.stringSize(int min,
int max)
Returns constraint that checks whether the length of a string is within
allowed minimum and maximum bounds.
|
static Constraint<String> |
ConstraintFactory.supportedEncoding()
Returns constraint that checks whether a string is in list of available
charset names supported by JRE.
|
static Constraint<String> |
ConstraintFactory.supportedImageMime()
Returns constraint that checks whether a string is in list of available
image MIME types supported by
javax.imageio.ImageIO . |
static Constraint<Locale> |
ConstraintFactory.supportedLocale()
Returns constraint that checks whether a locale is in list of available
locales supported by JRE.
|
static Constraint<TimeZone> |
ConstraintFactory.supportedTimeZone()
Returns constraint that checks whether a time zone is in list of
available time zones supported by JRE.
|
static Constraint<Date> |
ConstraintFactory.sysdate()
Returns constraint that replaces a
null date with current
system date. |
static Constraint<String> |
ConstraintFactory.trim()
Returns constraint that removes leading and trailing whitespaces from a
string.
|
static <V> Constraint<V> |
ConstraintFactory.unwrapConstraint(Constraint<V> wrapper)
Returns unwrapped constraint for the specified one.
|
static Constraint<String> |
ConstraintFactory.upperCase()
Returns constraint that converts a string to upper case.
|
static Constraint<String> |
ConstraintFactory.uriAddress()
Returns constraint that checks whether a string is valid URI reference.
|
static Constraint<String> |
ConstraintFactory.uriAddress(String... schemes)
Returns constraint that checks whether a string is valid URI reference
with allowed scheme.
|
static Constraint<String> |
ConstraintFactory.urlAddress()
Returns constraint that checks whether a string is valid URL reference.
|
static Constraint<String> |
ConstraintFactory.urlAddress(String prefix,
String... protocols)
Returns constraint that checks whether a string is valid URL reference
with allowed prefix and protocol.
|
static <V> Constraint<V> |
ConstraintFactory.wrapGroups(Constraint<V> constraint)
Wraps groups of the specified constraint by default.
|
static <V> Constraint<V> |
ConstraintFactory.wrapGroups(Constraint<V> constraint,
String... groups)
Wraps groups of the specified constraint.
|
static <V> Constraint<V> |
ConstraintFactory.wrapMessage(Constraint<V> constraint,
String message)
Wraps error message of the specified constraint.
|
| Modifier and Type | Method and Description |
|---|---|
static <V> Constraint<V> |
ConstraintFactory.and(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.and(Constraint<? super V>... constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<? super V[]> |
ConstraintFactory.arrayElement(Constraint<V> constraint)
Returns constraint that performs validation of array elements.
|
static <V> Constraint<? super Collection<V>> |
ConstraintFactory.collectionElement(Constraint<V> constraint)
Returns constraint that performs validation of collection elements.
|
static <V> Set<V> |
ConstraintFactory.findConstants(Constraint<?> wrapper)
Searches enumeration constants for the specified constraint.
|
static <T extends Constraint<?>> |
ConstraintFactory.findConstraint(Constraint<?> wrapper,
Class<T> requiredType)
Searches constraint by its type in the specified one.
|
static <V> V |
ConstraintFactory.findDefaultValue(Constraint<?> wrapper)
Searches default value for the specified constraint.
|
static Set<String> |
ConstraintFactory.getGroups(Constraint<?> constraint)
Returns set of groups the specified constraint is applied on.
|
static boolean |
ConstraintFactory.hasWrappedMessage(Constraint<?> constraint)
Determines if the specified constraint has wrapped error message.
|
static <V> Constraint<V> |
ConstraintFactory.join(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.join(Constraint<? super V>... constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<? super Map<V,Object>> |
ConstraintFactory.mapKey(Constraint<V> constraint)
Returns constraint that performs validation of map keys.
|
static <V> Constraint<? super Map<Object,V>> |
ConstraintFactory.mapValue(Constraint<V> constraint)
Returns constraint that performs validation of map values.
|
static <V> Constraint<V> |
ConstraintFactory.not(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.not(Constraint<? super V>... constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Class<V> type,
Constraint<? super V>... constraints)
Returns constraint that is disjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Constraint<? super V>... constraints)
Returns constraint that is disjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.unwrapConstraint(Constraint<V> wrapper)
Returns unwrapped constraint for the specified one.
|
static <V> Constraint<V> |
ConstraintFactory.wrapGroups(Constraint<V> constraint)
Wraps groups of the specified constraint by default.
|
static <V> Constraint<V> |
ConstraintFactory.wrapGroups(Constraint<V> constraint,
String... groups)
Wraps groups of the specified constraint.
|
static <V> Constraint<V> |
ConstraintFactory.wrapMessage(Constraint<V> constraint,
String message)
Wraps error message of the specified constraint.
|
| Modifier and Type | Method and Description |
|---|---|
static <V> Constraint<V> |
ConstraintFactory.and(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.and(Collection<Constraint<? super V>> constraints)
Returns constraint that is conjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.join(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.join(Collection<Constraint<? super V>> constraints)
Returns constraint that is composition of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.not(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.not(Collection<Constraint<? super V>> constraints)
Returns constraint that is negation of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Class<V> type,
Collection<Constraint<? super V>> constraints)
Returns constraint that is disjunction of the specified constraints.
|
static <V> Constraint<V> |
ConstraintFactory.or(Collection<Constraint<? super V>> constraints)
Returns constraint that is disjunction of the specified constraints.
|
| Constructor and Description |
|---|
ConstraintAggregation(Class<?> type,
Constraint<? super V>... constraints)
Constructs a new
ConstraintAggregation with the specified
value type and array of other constraints. |
ConstraintViolationException(Constraint<?> constraint,
ValidationContext<?> context,
Object value)
Constructs a new
ConstraintViolationException with the
specified constraint, context and invalid value. |
ConstraintViolationException(Constraint<?> constraint,
ValidationContext<?> context,
Object value,
Throwable cause)
Constructs a new
ConstraintViolationException with the
specified constraint, context, invalid value and cause. |
ConstraintWrapper(Constraint<V> constraint)
Constructs a new
ConstraintWrapper with the specified
constraint. |
SequenceElementConstraint(Constraint<E> constraint)
Constructs a new
SequenceElementConstraint with the
specified constraint of elements. |
| Modifier and Type | Field and Description |
|---|---|
protected Constraint<? super T> |
AbstractEntityMetaData.constraint
Constraint to be used for entity validation.
|
protected Constraint<? super V> |
AbstractPropertyMetaData.constraint
Constraint to be used for property value validation.
|
protected Constraint<? super T> |
MetaDataBuilder.constraint
Constraint to be used for entity validation.
|
| Modifier and Type | Method and Description |
|---|---|
Constraint<? super T> |
AbstractEntityMetaData.getConstraint()
Returns constraint to be used for entity validation.
|
Constraint<? super V> |
AbstractPropertyMetaData.getConstraint()
Returns constraint to be used for property value validation.
|
Constraint<? super T> |
MetaData.getConstraint()
Returns constraint to be used for data validation.
|
| Modifier and Type | Method and Description |
|---|---|
MetaDataBuilder<T> |
MetaDataBuilder.constraint(Constraint<? super T> constraint)
Defines constraint to be used for entity validation.
|
<V> MetaDataBuilder<T> |
MetaDataBuilder.property(String name,
Class<V> type,
Constraint<? super V> constraint)
Defines a property with the specified name, type and constraint.
|
<V> MetaDataBuilder<T> |
MetaDataBuilder.property(String name,
Class<V> type,
Constraint<? super V> constraint,
V defaultValue)
Defines a property with the specified name, type, constraint and
default value.
|
<V> MetaDataBuilder<T> |
MetaDataBuilder.property(String name,
Converter<V> converter,
Constraint<? super V> constraint)
Defines a property with the specified name, converter and constraint.
|
<V> MapMetaData.Builder |
MapMetaData.Builder.property(String name,
Converter<V> converter,
Constraint<? super V> constraint,
V defaultValue)
Defines a property with the specified name, converter, constraint
and default value.
|
abstract <V> MetaDataBuilder<T> |
MetaDataBuilder.property(String name,
Converter<V> converter,
Constraint<? super V> constraint,
V defaultValue)
Defines a property with the specified name, converter, constraint
and default value.
|
| Constructor and Description |
|---|
AbstractEntityMetaData(Constraint<? super T> constraint,
Map<String,? extends PropertyMetaData<T,Object>> properties)
Constructs a new
AbstractEntityMetaData with the specified
entity constraint and properties metadata. |
AbstractPropertyMetaData(String name,
Converter<V> converter,
Constraint<? super V> constraint,
V defaultValue)
Constructs a new
AbstractPropertyMetaData with the specified
name, converter, constraint and default value. |
BeanMetaData(Class<T> type,
Constraint<? super T> constraint,
Map<String,BeanMetaData.Property<T,Object>> properties)
Constructs a new
BeanMetaData with the specified bean type,
constraint and properties metadata. |
MapMetaData(Constraint<? super Map<String,Object>> constraint,
Map<String,MapMetaData.Property<Object>> properties)
Constructs a new
MapMetaData with the specified map
constraint and properties metadata. |
Property(String name,
Converter<V> converter,
Constraint<? super V> constraint,
org.foxlabs.util.reflect.PropertyGetter getter,
org.foxlabs.util.reflect.PropertySetter setter,
V defaultValue)
Constructs a new
BeanPropertyMetaData with the specified
name, converter, constraint, property getter and setter. |
Property(String name,
Converter<V> converter,
Constraint<? super V> constraint,
V defaultValue)
Constructs a new
MapMetaData.Property with the
specified name, converter, constraint and default value. |
Copyright © 2011–2020 FoxLabs. All rights reserved.


LookML Updater¶
Data is higher quality if it is defined. Moreover, definitions should be consistent wherever the data are in our systems—we should never get out of sync as this causes confusion. Thus, our goal is to have a single source of truth of definitions and have those definitions propagate into other systems. This is one part of the propagation system: propagate from master source to LookML.
This code provides the ability to examine the dimensions, dimension_groups, and measures of LookML, examine whether they contain correct descriptions, compared to some master source.
If they are missing or are incorrect or otherwise out of sync, this code will update or inject the correct description into the LookML. This can then be committed and pushed to a branch for review in a pull request. This code just does the LookML updating.
Here is a possible, example workflow:
Configuration¶
You will need to specify the source of the definitions:
{
"definitions": {
"type": "CsvDefinitionsProvider",
"filename": "definitions.csv"
}
}
or
{
"definitions": {
"type": "MySQLReader",
"query": "select * from test",
"username": "myusername",
"password": "mysecret",
"port": 3306,
"host": "<IP_ADDRESS>",
"database": "mydb"
}
}
How it works¶
The code parses a LookML file into a JSON object using
lkml
parser.This format allows easy interrogation of dimensions and measures to see whether they contain a description.
We use a master source of dimension and measure definitions. Currently, can come from a local CSV (using
CsvDefinitionsProvider
) or relational databases (MySQLReader
,PostgreReader
, andSqliteReader
) including a BiqQuery table (usingBqDefinitionsProvider
) which, for instsnce, could be a sync from a data catalog tool.If a dimension doesn’t contain the description, it is injected in the LookML file. If a description exists but it does not match the master definition, it is updated
the updated LookML file is written out. The goal is not to modify other lines of the file (e.g., by changing whitespace or formatting) so that a
git diff
highlights just the description line modifications, thus making a pull request as easy as possible.
To run¶
To run,
python run_updater.py --config config/config.json --infile my_amazing_view.lkml --outfile modified.lkml
(You can set outfile
to be same as infile
so that it modifies the existing file.)
Example¶
Given an input example.lkml
LookML file
view: dim_geography {
sql_table_name: `BQDW.DimGeography` ;;
dimension: city_code {
type: string
description: "this
is
an
exsiting
multiline
description"
sql: ${TABLE}.CityCode ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
}`
and set of required definitions:
file,type,name,definition
example.lkml,dimension,city_code,"This
is
the
correct
description"
example.lkml,measure,count,this is the count description
Running
python run.py --config example_config.json --infile example.lkml --outfile example_outfile.lkml
(where example_config.json
points to that CSV above)
results in example_outfile.lkml
view: dim_geography {
sql_table_name: `BQDW.DimGeography` ;;
dimension: city_code {
type: string
description: "This
is
the
correct
description" # programmatically added by LookML modifier
sql: ${TABLE}.CityCode ;;
}
measure: count {
description: "this is the count description" # programmatically added by LookML modifier
type: count
drill_fields: [detail*]
}
}
Fully automated script¶
full_auto_updater.sh
is a bash script that creates a full automation:
Checks out LookML code
Runs updater
if and only if any changes made:
commits
pushes to remote
creates a pull request.
As the comments in the script show, to run this script, you will need to set a few variables:
ACCESS_TOKEN
for github (orGITHUB_USER
andGITHUB_PASSWORD
)REMOTE
URL for gitrepo to updatedefinitions source
Current limitations, assumptions, and TODOs¶
code assumes that the opening curly brace for a dimension or measure is on the same line, ie.
dimension: myname {
notdimension: myname \n\n\n{


search
view_module
refresh
person
Dashboard
Comments
Users
DAILY SUMMARY
NEW USERS
NEW WAYPOINTS
NEW COMMENTS
TOTAL SUMMARY
TOTAL USERS
TOTAL WAYPOINTS
TOTAL COMMENTS
WAYPOINTS
COMMENTS FOR WAYPOINTS
USERS


{% extends "base.html" %} {% block outdated %} You're not viewing the latest version. Click here to go to latest. {% endblock %}


We're sorry but newapp doesn't work properly without JavaScript enabled. Please enable it to continue.


ATTR_GEN_HELP_CONTEXT, HINT_PRIMARY_NO_HELP_BUTTON
The help controller displays help pages based on an object's context. An object sets its context with
ATTR_GEN_HELP_CONTEXT
, which holds the name of the context. If an object does not have an assigned context, it will query up the tree until one of its ancestors assigns a context. The help control will display the help page with the same name as the assigned context.
This attribute has some side effects. If placed on a GenPrimary object, it will create the help trigger that appears in the application's title bar (unless other restrictions are applied--see below). If placed on a dialog box GenInteraction, it will create a help trigger in the dialog box (placement of the trigger is subject to the specific UI, but it will normally be on the far right of the reply bar). Both of these triggers invoke help with the context of their objects.
Almost always, the GenPrimary's help context should be "TOC" to bring up the TOC help page. This is the default context, so if you don't specify a context for any object, help will always try to bring up the TOC page.
As stated above,
ATTR_GEN_HELP_CONTEXT
will by default create help triggers in certain situations. There are two times when creation of these help triggers will be suppressed: First, on small-screen devices or other situations wherein help triggers are not desired. In this situation, the .INI file will have a certain help option turned off. The simplest way to do this is to set
[uiFeatures] helpOptions = 1
in the .INI file. This corresponds to the single help option UIHO_HIDE_HELP_BUTTONS and will suppress the help triggers. Both the F1 key (or equivalent) and
MSG_META_BRING_UP_HELP
will still invoke help properly.
Second, you can suppress only the GenPrimary's help trigger by adding
HINT_PRIMARY_NO_HELP_BUTTON
to the GenPrimary. Other help triggers will appear as dictated by the other requirements.
You can create your own help triggers if you like, though there is rarely a need to. Help triggers can be normal GenTrigger objects, with special settings. If the trigger is in a dialog box, it should have
IC_HELP as its interaction type (
ATTR_GEN_TRIGGER_INTERACTION_COMMAND
). Otherwise, it should send
MSG_META_BRING_UP_HELP
to the object that should provide the context for the help. Also, the trigger should have its moniker specified with
ATTR_GEN_DEFAULT_MONIKER
, with the value GDMT_HELP
. This will ensure your help trigger looks like other help triggers.
Help triggers you create, however, will not be suppressed by the system. Thus, if you want your application to be adaptable to small-screen UIs, you should only use system-provided help triggers.


◄ 43rd IPHO 2012 ►
Country results • Individual results
| Contestant | Country | Rank | Award |
|---|---|---|---|
| Attila Szabó | Hungary | 1 | Gold Medal |
| Hengyun Zhou | People's Republic of China | 2 | Gold Medal |
| Yijun Jiang | People's Republic of China | 3 | Gold Medal |
| Chien-An Wang | Taiwan | 4 | Gold Medal |
| Kai-Chi Huang | Taiwan | 5 | Gold Medal |
| Paphop Sawasdee | Thailand | 6 | Gold Medal |
| Eric Schneider | United States of America | 7 | Gold Medal |
| Jun-Ting Hsieh | Taiwan | 8 | Gold Medal |
| Siyuan Wei | People's Republic of China | 9 | Gold Medal |
| Chi Shu | People's Republic of China | 10 | Gold Medal |
| Wonseok Lee | Republic of Korea | 11 | Gold Medal |
| Wenzhuo Huang | People's Republic of China | 12 | Gold Medal |
| Yu-Ting Liu | Taiwan | 13 | Gold Medal |
| Wei-Jen Ko | Taiwan | 14 | Gold Medal |
| Rahul Trivedi | India | 15 | Gold Medal |
| Lev Ginzburg | Russia | 16 | Gold Medal |
| Tudor Giurgică-Tiron | Romania | 17 | Gold Medal |
| Allan Sadun | United States of America | 18 | Gold Medal |
| Kazumi Kasaura | Japan | 19 | Gold Medal |
| Nikita Sopenko | Russia | 20 | Gold Medal |
| Ding Yue | Singapore | 21 | Gold Medal |
| Lam Ho Tat | Hong Kong | 22 | Gold Medal |
| Sooshin Kim | Republic of Korea | 23 | Gold Medal |
| Jaemo Lim | Republic of Korea | 24 | Gold Medal |
| Lorenz Eberhardt | Germany | 25 | Gold Medal |
| Ivan Ivashkovskiy | Russia | 26 | Gold Medal |
| Michal Pacholski | Poland | 27 | Gold Medal |
| Qiao Gu | Germany | 28 | Gold Medal |
| Adrian Nugraha Utama | Indonesia | 29 | Gold Medal |
| Albert Samoilenka | Belarus | 30 | Gold Medal |
| Puthipong Worasaran | Thailand | 31 | Gold Medal |
| Jaan Toots | Estonia | 32 | Gold Medal |
| Nathanan Tantivasadakarn | Thailand | 33 | Gold Medal |
| Ngo Phi Long | Vietnam | 34 | Gold Medal |
| Yuichi Enoki | Japan | 35 | Gold Medal |
| Ihar Lobach | Belarus | 36 | Gold Medal |
| Veselin Karadzhov | Bulgaria | 37 | Gold Medal |
| Ivan Tadeu Ferreira Antunes Filho | Brazil | 38 | Gold Medal |
| Ilya Vilkoviskiy | Kazakhstan | 39 | Gold Medal |
| Kevin Zhou | United States of America | 40 | Gold Medal |
| Ang Yu Jian | Singapore | 41 | Gold Medal |
| Fung Tsz Chai | Hong Kong | 42 | Gold Medal |
| Kuan Jun Jie Joseph | Singapore | 43 | Gold Medal |
| Ngoc Hai Dinh | Vietnam | 44 | Gold Medal |
| Huan Yan Qi | Singapore | 45 | Gold Medal |
| Alexandra Vasilyeva | Russia | 46 | Silver Medal |
| Bijoy Singh Kochar | India | 47 | Silver Medal |
| Jeevana Priya Inala | India | 48 | Silver Medal |
| Zoltán Laczkó | Hungary | 49 | Silver Medal |
| Dan-Cristian Andronic | Romania | 50 | Silver Medal |
| Ramtin Yazdanian | Islamic Republic of Iran | 51 | Silver Medal |
| Vladysslav Diachenko | Ukraine | 52 | Silver Medal |
| Sebastian Linß | Germany | 53 | Silver Medal |
| Kunal Singhal | India | 54 | Silver Medal |
| Kohei Kawabata | Japan | 55 | Silver Medal |
| Volodymyr Sivak | Ukraine | 56 | Silver Medal |
| David Frenklakh | Russia | 57 | Silver Medal |
| Vsevolod Bykov | Ukraine | 58 | Silver Medal |
| Theodor Misiakiewicz | France | 59 | Silver Medal |
| Woojin Kweon | Republic of Korea | 60 | Silver Medal |
| Kaisarbek Omirzakhov | Kazakhstan | 61 | Silver Medal |
| Huy Quang Le | Vietnam | 62 | Silver Medal |
| Ondřej Bartoš | Czech Republic | 63 | Silver Medal |
| Jakub Vošmera | Czech Republic | 64 | Silver Medal |
| Stanislav Fořt | Czech Republic | 65 | Silver Medal |
| Pongsapuk Sawaddirak | Thailand | 66 | Silver Medal |
| Suyeon Choi | Republic of Korea | 67 | Silver Medal |
| Yordan Stefanov Yordanov | Bulgaria | 68 | Silver Medal |
| Hiromasa Nakatsuka | Japan | 69 | Silver Medal |
| Aliaksey Khatskevich | Belarus | 70 | Silver Medal |
| Peter Kosec | Slovakia | 71 | Silver Medal |
| Chan Cheuk Lun | Hong Kong | 72 | Silver Medal |
| Itay Knaan Harpaz | Israel | 73 | Silver Medal |
| Tasuku Omori | Japan | 74 | Silver Medal |
| Vadzim Reut | Belarus | 75 | Silver Medal |
| Filip Ficek | Poland | 76 | Silver Medal |
| Daumantas Kavolis | Lithuania | 77 | Silver Medal |
| Tanel Kiis | Estonia | 78 | Silver Medal |
| Katerina Marinova Naydenova | Bulgaria | 79 | Silver Medal |
| Jeffrey Yan | United States of America | 80 | Silver Medal |
| Kristjan Kongas | Estonia | 81 | Silver Medal |
| Georg Krause | Germany | 82 | Silver Medal |
| Yevgen Cherniavskyi | Ukraine | 83 | Silver Medal |
| Jonathan Dong | France | 84 | Silver Medal |
| Kaur Aare Saar | Estonia | 85 | Silver Medal |
| Abdurrahman Akkaş | Turkey | 86 | Silver Medal |
| Jeffrey Cai | United States of America | 87 | Silver Medal |
| Georgijs Trenins | Latvia | 88 | Silver Medal |
| Henry Honglei Wu | Canada | 89 | Silver Medal |
| Patrik Svancara | Slovakia | 90 | Silver Medal |
| Oliver Edtmair | Austria | 91 | Silver Medal |
| Amir Yousefi | Islamic Republic of Iran | 92 | Silver Medal |
| Lubomír Grund | Czech Republic | 93 | Silver Medal |
| Patrik Turzák | Slovakia | 94 | Silver Medal |
| Milan Krstajić | Serbia | 95 | Silver Medal |
| Atınç Çağan Şengül | Turkey | 96 | Silver Medal |
| Ittai Rubinstein | Israel | 97 | Silver Medal |
| Mehmet Said Onay | Turkey | 98 | Silver Medal |
| Jean Douçot | France | 99 | Silver Medal |
| Matias Mannerkoski | Finland | 100 | Silver Medal |
| Soo Wah Ming Wayne | Singapore | 101 | Silver Medal |
| Mussa Rajamov | Kazakhstan | 102 | Silver Medal |
| Lai Kwun Hang | Hong Kong | 103 | Silver Medal |
| Tudor Ciobanu | Romania | 104 | Silver Medal |
| Roland Papp | Hungary | 105 | Silver Medal |
| Eric Wieser Great | United Kingdom | 106 | Silver Medal |
| Nurzhas Aidynov | Kazakhstan | 107 | Silver Medal |
| Adam Brown Great | United Kingdom | 108 | Silver Medal |
| Ņygimantas Straņnickas | Lithuania | 109 | Silver Medal |
| Paul Kirchner | France | 110 | Silver Medal |
| Atli Thor Sveinbjarnarson | Iceland | 111 | Silver Medal |
| Sebastian Florin Dumitru | Romania | 112 | Silver Medal |
| Péter Juhász | Hungary | 113 | Silver Medal |
| Christoph Schildknecht | Switzerland | 114 | Silver Medal |
| Wai Hong Lei | Macau | 115 | Silver Medal |
| Andres Erbsen | Estonia | 116 | Silver Medal |
| Milan Kornjaţa | Serbia | 117 | Bronze Medal |
| Petar Tadic | Montenegro | 118 | Bronze Medal |
| Cristian Zanoci | Moldova | 119 | Bronze Medal |
| Nicholas Salmon | Australia | 120 | Bronze Medal |
| Oğuzhan Can | Turkey | 121 | Bronze Medal |
| Mustafa Selman Akıncı | Turkey | 122 | Bronze Medal |
| Volodymyr Rozsokhovatskyi | Ukraine | 123 | Bronze Medal |
| Richard Thorburn Great | United Kingdom | 124 | Bronze Medal |
| Andrej Vlcek | Slovakia | 125 | Bronze Medal |
| Xuan Hien Bui | Vietnam | 126 | Bronze Medal |
| Ivan Senyushkin | Kazakhstan | 127 | Bronze Medal |
| Chen Solomon | Israel | 128 | Bronze Medal |
| Martijn van Kuppeveld | Netherlands | 129 | Bronze Medal |
| Jonathan Lay | Australia | 130 | Bronze Medal |
| Mohamad Ansarifard | Islamic Republic of Iran | 131 | Bronze Medal |
| Supanut Thanasilp | Thailand | 132 | Bronze Medal |
| Jan Rydzewski | Poland | 133 | Bronze Medal |
| Johan Runeson | Sweden | 134 | Bronze Medal |
| Iiro Lehto | Finland | 135 | Bronze Medal |
| Mehrdad Malakmohammadi | Islamic Republic of Iran | 136 | Bronze Medal |
| Hólmfrìður Hannesdóttir | Iceland | 137 | Bronze Medal |
| Simon Pirmet | France | 138 | Bronze Medal |
| Simon Blouin | Canada | 139 | Bronze Medal |
| Roberto Albesiano | Italy | 140 | Bronze Medal |
| Viet Thang Dinh | Vietnam | 141 | Bronze Medal |
| Pulkit Tandon | India | 142 | Bronze Medal |
| Sajad Khodadadian | Islamic Republic of Iran | 143 | Bronze Medal |
| Christoph Weis | Austria | 144 | Bronze Medal |
| Kacper Oreszczuk | Poland | 145 | Bronze Medal |
| Yigal Zegelman | Israel | 146 | Bronze Medal |
| Frank Bloomfield Great | United Kingdom | 147 | Bronze Medal |
| Tamara Ńumarac | Serbia | 148 | Bronze Medal |
| Vu Phan Thanh | Germany | 149 | Bronze Medal |
| Federica Maria Surace | Italy | 150 | Bronze Medal |
| Christopher Whittle | Australia | 151 | Bronze Medal |
| Francisco Machado | Portugal | 152 | Bronze Medal |
| Konstantin Gundev | Bulgaria | 153 | Bronze Medal |
| Martin Stadler | Austria | 154 | Bronze Medal |
| Martin Raszyk | Czech Republic | 155 | Bronze Medal |
| Thanh Phong Lê | Switzerland | 156 | Bronze Medal |
| Aliaksandr Yankouski | Belarus | 157 | Bronze Medal |
| Sepehr Ebadi | Canada | 158 | Bronze Medal |
| Domen Ipavec | Slovenia | 159 | Bronze Medal |
| Ruben Doornenbal | Netherlands | 160 | Bronze Medal |
| Yun Jia (Melody) Guan | Canada | 161 | Bronze Medal |
| Ion Toloaca | Moldova | 162 | Bronze Medal |
| Wai Pan Si | Macau | 163 | Bronze Medal |
| Eden Segal | Israel | 164 | Bronze Medal |
| Jose Luciano de Morais Neto | Brazil | 165 | Bronze Medal |
| Tobias Karg | Austria | 166 | Bronze Medal |
| Sergi Chalauri | Georgia | 167 | Bronze Medal |
| Meylis Malikov | Turkmenistan | 168 | Bronze Medal |
| Virab Gevorgyan | Armenia | 169 | Bronze Medal |
| Tristan Downing | Canada | 170 | Bronze Medal |
| Luqman Fathurrohim | Indonesia | 171 | Bronze Medal |
| Aitor Azemar | Spain | 172 | Bronze Medal |
| Dinis Cheian | Moldova | 173 | Bronze Medal |
| Lo Hei Chun | Hong Kong | 174 | Bronze Medal |
| Eric Huang | Australia | 175 | Bronze Medal |
| Jorge Torres Ramos | Mexico | 176 | Bronze Medal |
| Roberta Răileanu | Romania | 177 | Bronze Medal |
| Jovan Blanuńa | Serbia | 178 | Bronze Medal |
| Michele Fava | Italy | 179 | Bronze Medal |
| Selver Pepic | Bosnia and Herzegovina | 180 | Bronze Medal |
| Vardan Avetisyan | Armenia | 181 | Bronze Medal |
| Maximilian Ruep | Austria | 182 | Bronze Medal |
| Saba Kharabadze | Georgia | 183 | Bronze Medal |
| Sebastian Käser | Switzerland | 184 | Bronze Medal |
| Giorgi Kobakhidze | Georgia | 185 | Bronze Medal |
| Troy Figiel | Netherlands | 186 | Bronze Medal |
| Áron Dániel Kovács | Hungary | 187 | Bronze Medal |
| Ilija Buriš | Serbia | 188 | Bronze Medal |
| Nicoleta Colibaba | Moldova | 189 | Bronze Medal |
| Abdullah Alsalloum | Saudi Arabia | 190 | Bronze Medal |
| Haci Piriyev | Azerbaijan | 191 | Bronze Medal |
| Javier Mendez-Ovalle | Mexico | 192 | Bronze Medal |
| Ka Fai Chan | Macau | 193 | Bronze Medal |
| Guilherme Renato Martins Unzer | Brazil | 194 | Bronze Medal |
| Muhammad Taimoor Iftikhar | Pakistan | 195 | Bronze Medal |
| Emmanouil Vourliotis | Greece | 196 | Bronze Medal |
| Jemal Shengelia | Georgia | 197 | Bronze Medal |
| Lara Timbo Araujo | Brazil | 198 | Bronze Medal |
| Ilie Popanu | Moldova | 199 | Bronze Medal |
| Francesc-Xavier Gispert Sánchez | Spain | 200 | Bronze Medal |
| Battsooj Bayarsaikhan | Mongolia | 201 | Bronze Medal |
| Samuel Bosch | Croatia | 202 | Bronze Medal |
| Koen Dwarshuis | Netherlands | 203 | Bronze Medal |
| Shinjini Saha | Bangladesh | 204 | Bronze Medal |
| Leandro Salemi | Belgium | 205 | Bronze Medal |
| Chan Lon Wu | Macau | 206 | Bronze Medal |
| Adhamzhon Shukurov | Tajikistan | 207 | Bronze Medal |
| Peter Budden Great | United Kingdom | 208 | Bronze Medal |
| Jyri Maanpää | Finland | 209 | Honourable Mention |
| Sandro Maludze | Georgia | 210 | Honourable Mention |
| Siobhan Tobin | Australia | 211 | Honourable Mention |
| Simão João | Portugal | 212 | Honourable Mention |
| Tomas Ţerńkus | Lithuania | 213 | Honourable Mention |
| Osama Yaghi | Syria | 214 | Honourable Mention |
| Koay Hui Wen | Malaysia | 215 | Honourable Mention |
| Nikolaj Theodor Thams | Denmark | 216 | Honourable Mention |
| Ramadhiansyah Ramadhiansyah | Indonesia | 217 | Honourable Mention |
| Ooi Chun Yeang | Malaysia | 218 | Honourable Mention |
| Dominic Schwarz | Switzerland | 219 | Honourable Mention |
| Bruno Buljan | Croatia | 220 | Honourable Mention |
| Bartlomiej Zawalski | Poland | 221 | Honourable Mention |
| Shovon Biswas | Bangladesh | 222 | Honourable Mention |
| Homoud Alharbi | Saudi Arabia | 223 | Honourable Mention |
| Bilguun Batjargal | Mongolia | 224 | Honourable Mention |
| Mantas Abazorius | Lithuania | 225 | Honourable Mention |
| Nudžeim Selimović | Bosnia and Herzegovina | 226 | Honourable Mention |
| Ahmed Maksud | Bangladesh | 227 | Honourable Mention |
| Arttu Yli-Sorvari | Finland | 228 | Honourable Mention |
| Farid Mammadov | Azerbaijan | 229 | Honourable Mention |
| Karlo Sepetanc | Croatia | 230 | Honourable Mention |
| Romain Falla | Belgium | 231 | Honourable Mention |
| Fotios Vogias | Greece | 232 | Honourable Mention |
| Miha Zgubiţ | Slovenia | 233 | Honourable Mention |
| Tsogt Baigalmaa | Mongolia | 234 | Honourable Mention |
| Mohamed Alrazzouk | Syria | 235 | Honourable Mention |
| Battushig Myanganbayar | Mongolia | 236 | Honourable Mention |
| Aram Mkrtchyan | Armenia | 237 | Honourable Mention |
| Munkhtsetseg Battulga | Mongolia | 238 | Honourable Mention |
| Michalis Halkiopoulos | Greece | 239 | Honourable Mention |
| Molte Emil Strange Andersen | Denmark | 240 | Honourable Mention |
| Federico Re | Italy | 241 | Honourable Mention |
| Stefan Alexis Sigurðsson | Iceland | 242 | Honourable Mention |
| Martin Vlashi | Italy | 243 | Honourable Mention |
| Mathias Stichelbaut | Belgium | 244 | Honourable Mention |
| Tapio Hautamäki | Finland | 245 | Honourable Mention |
| Jurij Tratar | Slovenia | 246 | Honourable Mention |
| Wai Hei Hoi | Macau | 247 | Honourable Mention |
| Ali Alhulaymi | Saudi Arabia | 248 | Honourable Mention |
| Kaloyan Ognyanov Darmonev | Bulgaria | 249 | Honourable Mention |
| Pedro Paredes | Portugal | 250 | Honourable Mention |
| Laura Gremion | Switzerland | 251 | Honourable Mention |
| Yeoh Chin Vern | Malaysia | 252 | Honourable Mention |
| Grgur Simunic | Croatia | 253 | Honourable Mention |
| Matheus Marreiros | Portugal | 254 | Honourable Mention |
| Thijs van der Gugten | Netherlands | 255 | Honourable Mention |
| Salizhan Kylychbekov | Kyrgyzstan | 256 | Honourable Mention |
| Kasper Tolborg | Denmark | 257 | Honourable Mention |
| Dale Alexander Hughes | Ireland | 258 | Honourable Mention |
| Luka Ivanovskis | Latvia | 259 | Honourable Mention |
| I Made G.N. Kumara | Indonesia | 260 | Honourable Mention |
| Mohammad Alhejji | Saudi Arabia | 261 | Honourable Mention |
| David Trillo Fernández | Spain | 262 | Honourable Mention |
| Aleksandr Petrosyan | Armenia | 263 | Honourable Mention |
| Vladimir Pejovic | Montenegro | 264 | Honourable Mention |
| Andres Rios Tascon | Colombia | 265 | Honourable Mention |
| Eduardo Israel Acosta Reynoso | Mexico | 266 | Honourable Mention |
| Werdi Wedana Gunawan | Indonesia | 267 | Honourable Mention |
| Ghadeer Shaaban | Syria | 268 | Honourable Mention |
| Māris Seržāns | Latvia | 269 | Honourable Mention |
| Pétur Rafn Bryde | Iceland | 270 | Honourable Mention |
| Kemal Babayev | Turkmenistan | 271 | Honourable Mention |
| Stavros Efthymiou | Greece | ≥272 | |
| Emmanouil Sakaridis | Greece | ≥272 | |
| Amer Ajanovic | Bosnia and Herzegovina | ≥272 | |
| SlaŤan Veselinoviš | Bosnia and Herzegovina | ≥272 | |
| Stefan Gvozdenoviš | Bosnia and Herzegovina | ≥272 | |
| Luka Skoriš | Croatia | ≥272 | |
| Basile Vermassen | Belgium | ≥272 | |
| Basile Rosen | Belgium | ≥272 | |
| Luìs Gustavo Lapinha Dalla Stella | Brazil | ≥272 | |
| Andrés Zorrilla Vaca | Colombia | ≥272 | |
| Daniel Eduardo Fajardo Fajardo | Colombia | ≥272 | |
| Jakob Lass | Denmark | ≥272 | |
| Christian Aamand Witting | Denmark | ≥272 | |
| Freyr Sverrisson | Iceland | ≥272 | |
| Kristaps Znotiņń | Latvia | ≥272 | |
| Andris Gerasimoviţs | Latvia | ≥272 | |
| Marius Kerys | Lithuania | ≥272 | |
| Alberto Jesús Trejo Avila | Mexico | ≥272 | |
| Kevin Bustillos Barrera | Mexico | ≥272 | |
| Manuel Cabral | Portugal | ≥272 | |
| Samuel Beznák | Slovakia | ≥272 | |
| Matevņ Marinţiţ | Slovenia | ≥272 | |
| Jan Ńuntajs | Slovenia | ≥272 | |
| Roberto Alegre | Spain | ≥272 | |
| Marc Rodà Llordés | Spain | ≥272 | |
| Carl Smed | Sweden | ≥272 | |
| Simon Johansson | Sweden | ≥272 | |
| Viktor Djurberg | Sweden | ≥272 | |
| Andréas Sundström | Sweden | ≥272 | |
| Håkon Tasken | Norway | ≥272 | |
| Oda Lauten | Norway | ≥272 | |
| Tiantian Zhang | Norway | ≥272 | |
| Anders Strømberg | Norway | ≥272 | |
| Marius Leiros | Norway | ≥272 | |
| Lee Yuan Zhe | Malaysia | ≥272 | |
| Imran Arifin | Malaysia | ≥272 | |
| Marko Petriš | Montenegro | ≥272 | |
| Nikola Potpara | Montenegro | ≥272 | |
| Janko Raduloviš | Montenegro | ≥272 | |
| Michael Tari Charles Okhide | Nigeria | ≥272 | |
| Bryan Alexander Escalante Castro | El Salvador | ≥272 | |
| Valerie Argentina Dominguez Rivera | El Salvador | ≥272 | |
| Julio Carlos Chorro Huezo | El Salvador | ≥272 | |
| Kinjol Barua | Bangladesh | ≥272 | |
| Wasif Ahmed | Bangladesh | ≥272 | |
| Geri Emiri | Albania | ≥272 | |
| Arled Papa | Albania | ≥272 | |
| Razmik Hovhannisyan | Armenia | ≥272 | |
| Valeh Farzaliyev | Azerbaijan | ≥272 | |
| Ramazan Ramazanov | Azerbaijan | ≥272 | |
| Ahmad Mehribanli | Azerbaijan | ≥272 | |
| Cesar Tapia | Bolivia | ≥272 | |
| Nicolas Shiaelis | Cyprus | ≥272 | |
| Anastasios Stylianou | Cyprus | ≥272 | |
| Marios Ioannou | Cyprus | ≥272 | |
| Marios Maimaris | Cyprus | ≥272 | |
| Fidias Ieridis | Cyprus | ≥272 | |
| John Cristopher Horatio Mulholland | Ireland | ≥272 | |
| Liam Tomas Mulcahy | Ireland | ≥272 | |
| Thomas Sherlock Wyse Jackson | Ireland | ≥272 | |
| Fedor Ignatov | Kyrgyzstan | ≥272 | |
| Zakirbek Mamatair Uulu | Kyrgyzstan | ≥272 | |
| Ermek Belekov | Kyrgyzstan | ≥272 | |
| Meder Kutbidin Uulu | Kyrgyzstan | ≥272 | |
| Nour Alsajari | Kuwait | ≥272 | |
| Rawan Alsenin | Kuwait | ≥272 | |
| Suad Alasfoor | Kuwait | ≥272 | |
| Maryam Ramadan | Kuwait | ≥272 | |
| Zainab Busalehhah | Kuwait | ≥272 | |
| Benedikt Kratochwil | Liechtenstein | ≥272 | |
| Lukas Lang | Liechtenstein | ≥272 | |
| David Hälg | Liechtenstein | ≥272 | |
| Chanaka Manoj Singhabahu | Sri Lanka | ≥272 | |
| Dombagaha Gedara Prasad Randika Maithriepala | Sri Lanka | ≥272 | |
| Liraj Harsha Prabath Kodithuwakku | Sri Lanka | ≥272 | |
| M. Janidu Chandrashantha Gunarathna | Sri Lanka | ≥272 | |
| Edurapotha Gamaralalage Inoka Amanthie Dharmasena | Sri Lanka | ≥272 | |
| Vesna Bacheva | North Macedonia | ≥272 | |
| Filip Simeski | North Macedonia | ≥272 | |
| Biljana Mitreska | North Macedonia | ≥272 | |
| Ljupcho Petrov | North Macedonia | ≥272 | |
| Musa Muhammad Damina | Nigeria | ≥272 | |
| John Nwankwo Chijioke | Nigeria | ≥272 | |
| Ikechukwu Anthony Okonkwo | Nigeria | ≥272 | |
| Ayomide Andrae Bamidele | Nigeria | ≥272 | |
| Muhammad Suhaib Qasim | Pakistan | ≥272 | |
| Usman Ayyaz | Pakistan | ≥272 | |
| Usman Ali Javid | Pakistan | ≥272 | |
| Logan Brendan Abel | Puerto Rico | ≥272 | |
| Sulaiman Al Matroudi | Saudi Arabia | ≥272 | |
| Chaandnie Bandhoe | Suriname | ≥272 | |
| Raynesh A.V. Kanhai | Suriname | ≥272 | |
| Priya Kasimbeg | Suriname | ≥272 | |
| Suraj Kishoen Misier | Suriname | ≥272 | |
| Mohamad Nour Ahmad | Syria | ≥272 | |
| Abdukhomid Nurmatov | Tajikistan | ≥272 | |
| Rabboni Bafoev | Tajikistan | ≥272 | |
| Shakhzodi Rustamdzhon | Tajikistan | ≥272 | |
| Isfandiyor Safarov | Tajikistan | ≥272 | |
| Mekan Toyjanov | Turkmenistan | ≥272 | |
| Agajan Odayev | Turkmenistan | ≥272 | |
| Övezmyrat Övezmyradow | Turkmenistan | ≥272 | |
| Thiolan Prevan Naidoo | South Africa | ≥272 | |
| Avthar Sewrathan | South Africa | ≥272 | |
| Xolela Jara | South Africa | ≥272 | |
| Lloyd Mahadeo | South Africa | ≥272 | |
| Shihal Munesher Sapry | South Africa | ≥272 |
Results may be incomplete or incorrect.
Please send the relevant information to the webmaster:
<EMAIL_ADDRESS>If you are a participant you can send a personal page URL to be attached to your name.
If you are a participant you can send a personal page URL to be attached to your name.


PAY IT FORWARD (2000) / **
Directed by Mimi Leder. Screenplay by Leslie Dixon, based on the novel by Catherine Ryan Hyde. Starring Haley Joel Osment, Helen Hunt, Kevin Spacey. Running time: 124 minutes. Rated AA by the MFCB. Reviewed on November 18th, 2000.
By SHANNON PATRICK SULLIVAN
There are some nice ideas in "Pay It Forward". One of them is the central premise itself -- that one person does "three big favours for three other people", and then those people do three more favours for three more people, and on and on. Better still, these have to be favours that the other people "can't do for themselves" -- certainly not a minor proposition!
Admittedly, it's not a terribly realistic concept. I think that in real life, far too many people would take advantage of the first part without doing the second (or is that just my own cynicism peeking through?). But in a cinematic context, there is nothing wrong with this per se, and indeed the "pay it forward" philosophy has all the makings of a juicy movie premise.
Unfortunately, the Mimi Leder picture just does not have enough faith in its central idea. Instead of taking the ball and running with it, "pay it forward" is used as a clothesline on which to hang a number of far less rivetting, less original subplots. Despite its title, this is not a movie about a philanthropic way of life, but instead concerns itself mostly the broken people who become involved in that lifestyle.
And make no mistake, "Pay It Forward" is a film almost entirely populated with broken people -- those suffering from abuse, alcoholism, drug addictions, or simply neglect. Some have suggested the movie is "Capra-esque", but it is Capra viewed through distinctly 21st-century misanthropy. Those expecting a latter-day "It's A Wonderful Life" are likely to be disappointed.
Middle schooler Trevor McKinney (Haley Joel Osment) is a latchkey kid whose alcoholic father is long gone. Mother Arlene (Helen Hunt) works two jobs and is so close to falling off the wagon that she must be scraping pavement. Trevor's new social studies teacher is Eugene Simonet (Kevin Spacey), a man who is himself scarred both physically and emotionally. But Eugene is a good teacher, and on the first day of school, he challenges his class to come up with "an idea that will change the world -- and put it into action".
So quickly that you'd swear he must have been expecting the question, Trevor devises the "pay it forward" philosophy. His first act is to let a homeless man (James Caviezel) live in his garage. Then he tries to hook up Arlene and Eugene, neither of whom have been able to cultivate a functional love life. And for his third "big favour", he goes to the aid of a classmate perpetually troubled by bullies.
None of these work out quite like Trevor had hoped. And yet, the script by Leslie Dixon assures us that something good will come of it, because we are privy to glimpses of four months in the future, when a reporter (Jay Mohr) becomes part of "pay it forward" and begins backtracking through the chain to find its originator.
Unfortunately, each of Trevor's "favours" are used not so much to propel the "pay it forward" story forward, but rather as springboards, to a greater or lesser extent, for subplots of inferior dramatic value. It is these which dominate the movie. The most significant is the relationship between Arlene and Eugene. Disappointingly, especially given two such unusual characters and two such talented actors, this is nothing more than a standard romantic storyline. It goes through so many timeworn stages of misunderstanding, revelation, complication, separation, and reconciliation that it could have been lifted directly from a screenwriter's how-to book.
If nothing else, these sequences do at least boast the acting skills of Hunt and Spacey, who are in their usual fine form. That Hunt is able to portray Arlene as such a complex, troubled individual without engendering feelings of pity (or, for that matter, disgust) is somewhat remarkable. Hunt doesn't forget that, while Arlene is burdened by a tremendous number of issues, there is more to the character than just those issues. This is best illustrated in a terrific scene with Angie Dickinson (playing a bag lady), one of "Pay It Forward"'s few genuinely touching moments.
Spacey, meanwhile, does an excellent job of alluding to the hidden depths in Eugene's psyche without overplaying it. Consider the sequence in which Eugene finally reveals the root of his problems. As scripted, it is typical melodramatic fare, but Spacey never loses his center and plays the scene sincerely, without caving into the overt sentimentality of the moment, giving it some measure of credibility. Spacey also enjoys an excellent on-screen rapport with Osment, who continues to demonstrate that he is one of those rare child stars who actually knows how to act, rather than just mug for the camera.
The other subplots are not so blessed, unfortunately. The chronicle of Caviezel's hobo comes across as particularly disjointed, as the script drops in on it only at emotional highpoints (or lowpoints, as the case may be). It feels like we're just seeing the trailer for a more detailed storyline.
The school bully arc, meanwhile, is plainly included only to provide "Pay It Forward" with a convenient conclusion. This would not be so bad if that ending were more meaningful, but as it stands, it constitutes nothing more than indisputable viewer manipulation on the part of the screenwriters. I will not divulge any details, except to say that rarely have I watched a scene so clearly intended merely to provoke an obvious response from the audience, without any thought given to how this might impact on the movie's overall theme.
As a result, "Pay It Forward" comes across as something of an oddity -- a movie which not only shunts its own premise into the background for long stretches of time, but indeed provides its own evidence to discredit that premise. A few good performances do not come close enough to saving this poorly-conceived film. "Pay It Forward" has the makings of something good, but in the end it is much like the characters which inhabit it: broken.
Copyright © 2000 Shannon Patrick Sullivan. Archived at The Popcorn Gallery, http://www.physics.mun.ca/~sps/movies/PayItForward.html
_______________________________________________________________________ / Shannon Patrick Sullivan | "We are all in the gutter, but some of us \ |<EMAIL_ADDRESS>| are looking at the stars." - Oscar Wilde | \___________________________|__________________________________________/ | Popcorn Gallery Movie Reviews www.physics.mun.ca/~sps/movies.html | | Doctor Who: A Brief History of Time (Travel) /drwho.html |
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The U.S. Securities Exchange Commission charged CEO of online adult entertainment marketplace, with running a fraudulent initial offering scheme.
In fact, according to the SEC’s charges, no token was ever issued and his ethereum application never existed. The money raised went to marketing rather than building the product.
(edited)
seems the "only marketing matters" argument isnt working with the SEC
turns out if you raise money you actually need to deliver the tech that was promised
In a message sent to CoinDesk apparently by accident, Kik CEO Ted Livingstone claimed to be quitting the company.
So they have 19 developers working on "development of Kik" token with $100million raised from ICO and still they have no product and $5million of regulatory spenses are making them shutdown?
im not getting this, but it seems like this was a scam too
hastrup24-Sep-19 11:13 AM
Well that's fair!
actionslacks24-Sep-19 11:15 AM
100mil in 2 years
Markus24-Sep-19 11:44 AM
i never understood ppl trash talking other ppls appearence(edited)
especially on the internet
pretty low
actionslacks24-Sep-19 11:49 AM
that's a pretty dramatic hashrate drop for btc.
Markus24-Sep-19 11:51 AM
not your problem if he is unhealthy or not, why bother caring about other ppl u dont know
ppl should care more about themselves than others
fk jesus lol
made up story
its 2019 why bother about something what is suppose to have happened thousands of years ago
make no sense
funny
cya
JimD24-Sep-19 12:35 PM
@jspook16 Tuesday
altcoinist24-Sep-19 01:50 PM
What do you think guys a bear trap?
JimD24-Sep-19 01:51 PM
It wasn't a total slaughter so could be
We are at the end of a wedge and it appears we fell out
altcoinist24-Sep-19 01:52 PM
Price has recovered 2 or 3 times l wonder if it's worth the risk to buy and hope it will recover again
JimD24-Sep-19 01:53 PM
I think its gonna go one way or the other but looks like more down trending to come
actionslacks24-Sep-19 01:54 PM
congressional hearing on crypto today. somebody got a look at something they didn't like
altcoinist24-Sep-19 01:54 PM
Crypto market became a lot more different then 2017-2018
JimD24-Sep-19 01:56 PM
Ya, its tough to gauge
tech is getting better and more relevant I would say


Pet Subjects: Can I give my pets treats without making them fat?
by Pete WedderburnDear Pete
When Pepe, our nine-year-old Border collie cross, is in the sitting room with us in the evenings, she has started sitting on the sofa beside my husband, not taking her eyes off him. She stares at him for hours, keeping her paws on his chest or sleeping on him. If he stops stroking her she pats him with her paw to start again. Could this be the start of dementia?
MM, Donegal
Dear MM
Dementia can cause all sorts of altered behaviour, but there’s normally a pattern of a number of different changes rather than just one specific situation. It sounds more as if Pepe has simply developed a new method of preferred contact with your husband. When he stops paying her attention, she “asks” for more and he complies. This means that her “asking” behaviour is continually rewarded and so she continues doing it. It could be worth checking her vision and hearing: she may particularly like the close physical contact for reassurance if her sight or hearing are failing.
Dear Pete
My two-year-old cat and four-year-old labrador adore food treats, but I am afraid of making them fat or feeding them an unbalanced diet. What sort of treats are best to feed, and how many can I give every day?
AB, London
Dear AB
A simple rule of thumb is to make sure that you give no more than 10-15 per cent of the total diet in the form of treats. This low amount can improve a pet’s quality of life: they enjoy them, and they can be used as an aid to training improved behaviour and to promote mental stimulation. It’s best to use high quality treats that have useful nutritional value as well as being tasty: e.g. the Lily’s Kitchen meaty treats for dogs (including “duck and venison sausages” that can be hidden in food-releasing toys such as Kongs) and Dentalife cat treats that help to clean cats’ teeth.
We’re watching our pets’ secret behaviour
A survey by the Blue Cross pet charity has found more than half (57 per cent) of cat and dog owners worry about leaving their four-legged friends home alone, and almost a quarter have a monitoring device to watch their pet in their absence. Of those who use cameras to monitor their pets, 38 per cent say it’s helped them to change their pet’s routine or seek training for them.
Rescue pet
Handsome Kimani (above) is a five-year-old bull breed cross. He is a playful and affectionate boy. Visit the Danaher Animal Home website at danaheranimalhome.org.uk or call 0300 111 4321.
To view outcomes of rescued pets, see petethevet.com/rescues
Send queries to<EMAIL_ADDRESS>or tweet @PeteTheVet. All sick animals should be taken to a vet
Pet Subjects by Peter Wedderburn is published by Aurum Press (£12.99). To order a copy visit books.telegraph.co.uk


SweetFreeStuff.com
///////////////////////////////////////////
Free Little Remedies Sample
Posted: 25 Sep 2015 10:52 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Fill out the form that pops up to get a free sample. Free Little Remedies
Sample
The post Free Little Remedies Sample appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Campbells Organic Soup
Posted: 25 Sep 2015 10:48 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Save 100% when you buy any ONE (1) NEW Campbells Organic Soup. Expires
9/30. Free Campbell’s Organic Soup
The post Free Campbell’s Organic Soup appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Problem Solvers Bumper Magnet
Posted: 25 Sep 2015 07:43 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Problem Solvers Bumper Magnet
The post Free Problem Solvers Bumper Magnet appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Subscription to Western Horseman Magazine
Posted: 25 Sep 2015 07:00 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
The post Free Subscription to Western Horseman Magazine appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Camp Mac Sticker
Posted: 25 Sep 2015 06:42 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Camp Mac Sticker
The post Free Camp Mac Sticker appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free “I Was Created for Such a Time as This” Bookmark
Posted: 25 Sep 2015 03:53 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Copy Paste this
link: https://www.davidjeremiah.org/site/free-gift/ESTBKMK.aspx? and fill
out the form for a free bookmark.
The post Free I Was Created for Such a Time as This Bookmark appeared first
on SweetFreeStuff.com.
///////////////////////////////////////////
Free Twix Ghost or Snickers Pumpkin Shape Single at Kroger & Affiliate
Stores
Posted: 25 Sep 2015 01:34 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Load the coupon to your shoppers card today only (9/25) and use by 10/11.
Free Twix Ghost or Snickers Pumpkin Shape Single at Kroger Affiliate Stores
The post Free Twix Ghost or Snickers Pumpkin Shape Single at Kroger
Affiliate Stores appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Minibon at Cinnabon September 26th 11am-1pm
Posted: 24 Sep 2015 11:00 PM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Free Minibon at Cinnabon September 26th 11am-1pm
The post Free Minibon at Cinnabon September 26th 11am-1pm appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free U by Kotex Samples
Posted: 24 Sep 2015 10:00 PM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Choose from several different sample packs to try. Free U by Kotex Samples
The post Free U by Kotex Samples appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Atkins Quick Start Kit
Posted: 24 Sep 2015 03:00 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Sign up for a free Atkins quick-start kit, including a carb counter and a
printable BOGO coupon to get any Atkins product of equal or lesser value
for FREE! Free Atkins Quick Start Kit
The post Free Atkins Quick Start Kit appeared first on SweetFreeStuff.com.


We have detected the ActiveICM plugin is not working.
Please click on
this link to find relevant install instructions
If you are using Chrome you must also enable the browser to use the plugin
Type "chrome://flags/#enable-npapi" into the search bar
"Enable npapi"


Kadyszewski websites show kadyszewski.com/
in your browser's address bar.
Never enter your User information
into a site without this as it is a scam.