You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. /* $Id$ */
  18. package org.apache.fop.fonts;
  19. import java.text.CharacterIterator;
  20. /**
  21. * Encapsulates a sub-sequence (fragement) of a text iterator (or other text source),
  22. * where begin index and end index are indices into larger text iterator that denote
  23. * [begin,end) of sub-sequence range. Additionally associated with a designated script
  24. * (or "auto"), a designated language (or "none"), and a (single) bidi level (or -1
  25. * if not known).
  26. */
  27. public interface TextFragment {
  28. /**
  29. * Obtain reference to underlying iterator.
  30. */
  31. CharacterIterator getIterator();
  32. /**
  33. * Obtain beginning index (inclusive) of sub-sequence of fragment in overall text source.
  34. */
  35. int getBeginIndex();
  36. /**
  37. * Obtain ending index (exclusive) of sub-sequence of fragment in overall text source.
  38. */
  39. int getEndIndex();
  40. /**
  41. * Obtain associated script (if designated) or "auto" if not.
  42. */
  43. String getScript();
  44. /**
  45. * Obtain associated language (if designated) or "none" if not.
  46. */
  47. String getLanguage();
  48. /**
  49. * Obtain associated bidi level (if known) or -1 if not.
  50. */
  51. int getBidiLevel();
  52. /**
  53. * Obtain character at specified index within this fragment's sub-sequence,
  54. * where index 0 corresponds to beginning index in overal text source, and
  55. * subSequenceIndex must be less than ending index - beginning index.
  56. */
  57. char charAt(int subSequenceIndex);
  58. CharSequence subSequence(int startIndex, int endIndex);
  59. }