Source code: com/virtuosotechnologies/asaph/notationmanager/NotationManager.java
1 /*
2 ================================================================================
3
4 FILE: NotationManager.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 API for NotationManager
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.asaph.notationmanager;
43
44
45 import java.util.Locale;
46
47 import com.virtuosotechnologies.asaph.model.notation.NotationFactory;
48
49
50 /**
51 * API for StandardModel
52 */
53 public interface NotationManager
54 {
55 /**
56 * Name of this API
57 */
58 public static final String API_NAME = "com.virtuosotechnologies.asaph.notationmanager.NotationManager";
59
60
61 /**
62 * Get the NotationFactory for the given locale. If called multiple times for the same locale, it will
63 * return the same NotationFactory object.
64 *
65 * @param locale locale to use, or null to specify the default locale
66 * @return the NotationFactory for this locale.
67 */
68 public NotationFactory getNotationFactoryForLocale(
69 Locale locale);
70
71
72 /**
73 * Register a NotationFactory to use for a given locale.
74 *
75 * @param filter identifier for the relevant locales
76 * @param representative a representative locale for use in choosers
77 * @param factory NotationFactory to use
78 */
79 public void setNotationFactoryForLocale(
80 LocaleFilter filter,
81 Locale representative,
82 NotationFactory factory);
83
84
85 /**
86 * Get an array of representative locales, used for choosing a NotationFactory.
87 * Commonly used to build guis.
88 *
89 * @return an array of Locale
90 */
91 public Locale[] getRepresentativeLocales();
92 }