Package org.eclipse.birt.report.model.api.validators

# Class StructureListValidator

java.lang.Object
org.eclipse.birt.report.model.validators.AbstractSemanticValidator
org.eclipse.birt.report.model.validators.AbstractPropertyValidator
org.eclipse.birt.report.model.api.validators.StructureListValidator

public class StructureListValidator extends org.eclipse.birt.report.model.validators.AbstractPropertyValidator
Validates one list property of element. The property type should structure list.

### Rule

The rule is that

- all structures in this list property should be valid.
- the value of the property with `NamePropertyType` should be unique in the structure list.

### Applicability

This validator is only applied to the property whose type is structure list of one `DesignElement`.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`NAME`
Name of this validator.

### Fields inherited from class org.eclipse.birt.report.model.validators.AbstractSemanticValidator

`modules, name`

## Constructor Summary

Constructors
Constructor
Description
`StructureListValidator()`

## Method Summary

Modifier and Type
Method
Description
`static StructureListValidator`
`getInstance()`
Returns the singleton validator instance.
`List<SemanticException>`
`validate(org.eclipse.birt.report.model.core.Module module, org.eclipse.birt.report.model.core.DesignElement element, String propName)`
Validates whether the list property specified by `propName` is invalid.
`List<SemanticException>`
`validateForAdding(DesignElementHandle element, IPropertyDefn propDefn, List<Object> list, IStructure toAdd)`
Validates whether a new structure can be added to structure list.
`List<SemanticException>`
`validateForRenaming(DesignElementHandle element, IPropertyDefn propDefn, List<Object> list, IStructure toRenamed, IPropertyDefn memberDefn, String newName)`
Validates whether a structure can be renamed to the given name.

### Methods inherited from class org.eclipse.birt.report.model.validators.AbstractSemanticValidator

`canApplyToDesign, canApplyToLibrary, getName, isInTemplateParameterDefinitionSlot, setModules, setName`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### NAME

public static final String NAME
Name of this validator.

See Also:
  - Constant Field Values

## Constructor Details

### StructureListValidator

public StructureListValidator()

## Method Details

### getInstance

public static StructureListValidator getInstance()
Returns the singleton validator instance.

Returns:
  the validator instance

### validateForAdding

public List<SemanticException> validateForAdding(DesignElementHandle element, IPropertyDefn propDefn, List<Object> list, IStructure toAdd)
Validates whether a new structure can be added to structure list.

Parameters:
  `element` - the element holding the structure list
  `propDefn` - definition of the list property
  `list` - the structure list
  `toAdd` - the structure to add
Returns:
  error list, each of which is the instance of `SemanticException`.

### validate

public List<SemanticException> validate(org.eclipse.birt.report.model.core.Module module, org.eclipse.birt.report.model.core.DesignElement element, String propName)
Validates whether the list property specified by `propName` is invalid.

Specified by:
  `validate` in class `org.eclipse.birt.report.model.validators.AbstractPropertyValidator`
Parameters:
  `module` - the module
  `element` - the element to validate
  `propName` - the name of the list property to validate
Returns:
  error list, each of which is the instance of `SemanticException`.

### validateForRenaming

public List<SemanticException> validateForRenaming(DesignElementHandle element, IPropertyDefn propDefn, List<Object> list, IStructure toRenamed, IPropertyDefn memberDefn, String newName)
Validates whether a structure can be renamed to the given name.

Parameters:
  `element` - the element holding the structure list
  `propDefn` - definition of the list property
  `list` - the structure list
  `toRenamed` - the structure to rename
  `memberDefn` - the member definition
  `newName` - the new name
Returns:
  error list, each of which is the instance of `SemanticException`.