All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ibm.icu.text.BidiClassifier Maven / Gradle / Ivy

There is a newer version: 2.12.15
Show newest version
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
/*
 *******************************************************************************
 * Copyright (C) 2000-2009, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 */
/* Written by Simon Montagu, Matitiahu Allouche
 * (ported from C code written by Markus W. Scherer)
 */

package com.ibm.icu.text;

/**
 * Overrides default Bidi class values with custom ones.
 *
 * 

The override mechanism requires to define a subclass of * BidiClassifier which overrides the classifier * method to assign customized Bidi classes.

* *

This may be useful for assigning Bidi classes to PUA characters, or * for special application needs. For instance, an application may want to * handle all spaces like L or R characters (according to the base direction) * when creating the visual ordering of logical lines which are part of a report * organized in columns: there should not be interaction between adjacent * cells.

* *

To start using this customized * classifier with a Bidi object, it must be specified by calling the * Bidi.setCustomClassifier method; after that, the method * classify of the custom BidiClassifier will be * called by the UBA implementation any time the class of a character is * to be determined.

* * @see Bidi#setCustomClassifier * @stable ICU 3.8 */ public /*abstract*/ class BidiClassifier { /** * This object can be used for any purpose by the caller to pass * information to the BidiClassifier methods, and by the BidiClassifier * methods themselves.
* For instance, this object can be used to save a reference to * a previous custom BidiClassifier while setting a new one, so as to * allow chaining between them. * @stable ICU 3.8 */ protected Object context; /** * @param context Context for this classifier instance. * May be null. * @stable ICU 3.8 */ public BidiClassifier(Object context) { this.context = context; } /** * Sets classifier context, which can be used either by a caller or * callee for various purposes. * * @param context Context for this classifier instance. * May be null. * @stable ICU 3.8 */ public void setContext(Object context) { this.context = context; } /** * Returns the current classifier context. * @stable ICU 3.8 */ public Object getContext() { return this.context; } /** * Gets customized Bidi class for the code point c. *

* Default implementation, to be overridden. * * @param c Code point to be classified. * @return An integer representing directional property / Bidi class for the * given code point c, or Bidi.CLASS_DEFAULT=UCharacter.getIntPropertyMaxValue(UProperty.BIDI_CLASS)+1 * to signify that there is no need to override the standard Bidi class for * the given code point. * @see Bidi#CLASS_DEFAULT * @stable ICU 3.8 */ public int classify(int c) { return Bidi.CLASS_DEFAULT; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy