# Migration Guide for Sapphire 9

This documents covers changes that need to be made by Sapphire adopters as part of migrating to Sapphire 9 from a prior release. Only changes from the previous major release are covered.

Table of Contents

1. CountConstraint
2. PossibleTypesService
3. PossibleTypesServiceData
4. StringUtil
5. Type

## CountConstraint

Before | After
--- | ---

    org.eclipse.sapphire.modeling.annotations.CountConstraint

    org.eclipse.sapphire.Length

    @CountConstraint( ... )

    @Length( ... )

## PossibleTypesService

Before | After
--- | ---

    org.eclipse.sapphire.services.PossibleTypesService

    org.eclipse.sapphire.PossibleTypesService

    public class ExamplePossibleTypesService extends PossibleTypesService
    {
        @Override
        protected PossibleTypesServiceData compute()
        {
            return new PossibleTypesServiceData( ... );
        }
    }

    public class ExamplePossibleTypesService extends PossibleTypesService
    {
        @Override
        protected void compute( Set<ElementType> types )
        {
            ...
        }
    }

    SortedSet<ElementType> types = possibleTypesService.types();

    Set<ElementType> types = possibleTypesService.types();

    SortedSet<ElementType> types = possibleTypesService.data();

    Set<ElementType> types = possibleTypesService.data();

## PossibleTypesServiceData

This class has been removed. See PossibleTypesService migration.

## StringUtil

Before | After
--- | ---

    org.eclipse.sapphire.util.StringUtil.UTF8

    java.nio.charset.StandardCharsets.UTF_8

## Type

Before | After
--- | ---

    org.eclipse.sapphire.modeling.annotations.Type

    org.eclipse.sapphire.Type

Copyright (c) 2016 Oracle
Content made available under the terms of Eclipse Public License.