Листинги
Листинг 1.
public final class Class extends Object
implements Serializable {
// Информация о классе или интерфейсе
public native Class getSuperclass ();
// Возвращает класс-предшественник данного класса
public native Class [] getInterfaces ();
// Возвращает интерфейсы, реализуемые классом
public Field [] getFields ()
throws SecurityException;
// Возвращает public-поля данного класса, в том числе
// унаследованные. Возбуждает исключительную ситуацию,
// если доступ к этой информации запрещен политикой
// безопасности.
public Constructor [] getConstructors ()
throws SecurityException;
// Возвращает public-конструкторы данного класса.
// Возбуждает исключительную ситуацию, если доступ
// к этой информации запрещен политикой безопасности.
public Method [] getMethods ()
throws SecurityException;
// Возвращает public-методы данного класса, в том числе
// унаследованные. Возбуждает исключительную ситуацию,
// если доступ к этой информации запрещен политикой
// безопасности.
public Method getMethod (String name, Class
parameterTypes [])
throws NoSuchMethodException,
SecurityException;
// Возвращает public-метод с заданными именем и типами
// параметров. Возбуждает исключительную ситуацию,
// если такого метода нет, или если доступ к этой
// информации запрещен политикой безопасности
public Method [] getDeclaredMethods ()
throws SecurityException;
// Возвращает все методы, продекларированные в данном
// классе. Возбуждает исключительную ситуацию, если
// доступ к этой информации запрещен политикой
// безопасности
. . .
}
Листинг 2.
public final class Method
extends Object implements Member {
// Информация о методе класса или интерфейса
public Class getDeclaringClass ();
// Возвращает класс или интерфейс,
// содержащий декларацию данного метода
public String getName ();
// Возвращает имя метода в виде цепочки символов
public native int getModifiers ();
// Возвращает модификаторы (public, ...),
// использованные при описании метода
public Class [] getParameterTypes ();
// Возвращает типы формальных параметров метода
public Class getReturnType ();
// Возвращает тип результата метода
public Class [] getExceptionTypes ();
// Возвращает исключительные ситуации,
// возбуждаемые данным методом
public String toString ();
// Возвращает цепочку символов, описывающую метод
public native Object invoke (Object obj,
Object args [])
throws IllegalAccessException,
IllegalArgumentException,
InvocationTargetException,
NullPointerException;
// Применяет данный метод к объекту obj
// с заданным списком параметров
. . .
}
Листинг 3.
public class BeanDescriptor
extends FeatureDescriptor {
// Описатель компонента объектной среды
public BeanDescriptor (Class beanClass);
// Создает описатель по классу компонента
public Class getBeanClass ();
// Возвращает класс компонента
public Class getCustomizerClass ();
// Возвращает класс-настройщик компонента
// (см. раздел "Настройка свойств")
. . .
}
Листинг 4.
public interface BeanInfo {
// Интерфейс, который нужно реализовать,
// чтобы явным образом афишировать характеристики
// компонента объектной среды
public abstract BeanDescriptor
getBeanDescriptor ();
// Возвращает описатель компонента
public abstract EventSetDescriptor []
getEventSetDescriptors ();
// Возвращает описатели событий,
// возбуждаемых компонентом
public abstract PropertyDescriptor []
getPropertyDescriptors ();
// Возвращает описатели афишируемых
// свойств компонента
public abstract MethodDescriptor []
getMethodDescriptors ();
// Возвращает описатели афишируемых
// методов компонента
public abstract Image getIcon (int iconKind);
// Возвращает иконку, ассоциированную с компонентом
. . .
}
Листинг 5.
public class Introspector extends Object {
// Выяснение характеристик компонента объектной среды
public static BeanInfo
getBeanInfo (Class beanClass)
throws IntrospectionException;
// Выясняет афишируемые характеристики компонента.
// При нештатном ходе процесса интроспекции
// возбуждает исключительную ситуацию
public static String [] getBeanInfoSearchPath ();
// Возвращает массив пакетов,
// в которых будут разыскиваться классы BeanInfo
public static void
setBeanInfoSearchPath (String path []);
// Устанавливает массив пакетов,
// в которых будут разыскиваться классы BeanInfo
. . .
}
Листинг 6.
interface KeyPressedListener
extends java.util.EventListener {
void KeyPressed (KeyPressedEvent kpe);
// Метод, вызываемый в подписчиках
// при распространении события
}
Листинг 7.
implements Serializable {
protected transient Object source;
// Поле событийного объекта, хранящее информацию
// об источнике. Слово transient означает, что поле
// является временным и при сохранении объекта
// в долговременную память не записывается
public EventObject (Object source);
public Object getSource ();
public String toString ();
// Возвращает представление событийного объекта
// в виде цепочки символов
}
Листинг 8.
public class KeyPressedEvent
extends java.util.EventObject {
protected transient int KeyCode;
KeyPressedEvent (java.awt.Component source,
int Key) {
super (source);
KeyCode = Key;
}
public int getKeyPressed () {
return KeyCode;
}
}
Листинг 9.
public abstract class KeyPressedEventSource {
private Vector listeners = new Vector ();
// Массив для хранения набора подписчиков
public synchronized void
addKeyPressedListener (KeyPressedListener kpl) {
// Зарегистрировать подписчика
listeners.addElement (kpl);
}
public synchronized void
removeKeyPressedListener(KeyPressedListener kpl) {
// Аннулировать регистрацию
listeners.removeElement (kpl);
}
protected fireKeyPressed (int Key) {
// Распространение события (оповещение подписчиков)
Vector l;
KeyPressedEvent kpe =
new KeyPressedEvent (this, Key);
// Создадим локальную копию набора подписчиков
// на момент возникновения события.
// В процессе распространения события набор подписчиков
// (но не локальная копия!) может изменяться
synchronized (this)
{l = (Vector) listeners.clone ();}
// Оповестим подписчиков о наступлении события
for (int i = 0; i < l.size(); i++) {
((KeyPressedListener)
l.elementAt(i)).KeyPressed (kpe);
}
}
}
Листинг 10.
public class MyListener
implements KeyPressedListener {
public void KeyPressed (KeyPressedEvent kpe) {
. . .
}
}
Шаблоны
public <тип_свойства> get<имя_свойства> (int i);
public void set<имя_свойства> (int i, <тип_свойства> p);
public <тип_свойства> [] get<имя_свойства> ();
public void set<имя_свойства> (<тип_свойства> p []);
Примеры
Листинг 11.
public Color getPalette (int i);
public void setPalette (int i, Color c);
public Color [] getPalette ();
public void setPalette (Color c []);
Листинг 12.
public class PropertyChangeEvent
extends EventObject {
public PropertyChangeEvent (Object source,
String propertyName, Object oldValue,
Object newValue);
// Конструктор. Создает событийный объект из источника
// события, имени изменяемого свойства,
// старого и нового значений
public String getPropertyName ();
// Возвращает имя изменяемого свойства
public Object getNewValue ();
// Возвращает новое значение свойства
public Object getOldValue ();
// Возвращает прежнее значение свойства
. . .
}
Листинг 13.
public interface PropertyChangeListener
extends EventListener {
public abstract void
propertyChange (PropertyChangeEvent pce);
// Метод, вызываемый после изменения
// связанного свойства
}
Листинг 14.
public class PropertyChangeSupport
extends Object implements Serializable {
// Вспомогательный класс для обслуживания
// связанных свойств
public PropertyChangeSupport (Object sourceBean);
// Конструктор
public synchronized void
addPropertyChangeListener
(PropertyChangeListener pcl);
// Регистрация подписчиков
public synchronized void
removePropertyChangeListener
(PropertyChangeListener pcl);
// Аннулирование регистрации
public void firePropertyChange
(String propertyName, Object oldValue,
Object newValue);
// Конструирование событийного объекта и
// распространение события. Если новое и старое значения
// совпадают, никаких действий не предпринимается
}
Листинг 15.
public interface PropertyEditor {
public abstract void setValue (Object value);
// Устанавливает редактируемый объект (свойство)
public abstract Object getValue ();
// Возвращает текущее значение свойства
public abstract boolean isPaintable ();
// Истина, если свойство имеет графическое представление
// (реализован метод paintValue)
public abstract void paintValue (Graphics gfx,
Rectangle box);
// Отрисовывает графическое представление свойства
// в заданной области экрана
public abstract String getAsText ();
// Возвращает текстовой представление значения
// свойства, доступное для редактирования
public abstract void setAsText (String text)
throws IllegalArgumentException;
// Устанавливает значение свойства
// по текстовому представлению
public abstract boolean supportsCustomEditor ();
// Истина, если поддерживается специализированный
// редактор свойства
public abstract Component getCustomEditor ();
// Возвращает специализированный редактор свойства,
// которым, вероятно, воспользуется окружение
public abstract void addPropertyChangeListener
(PropertyChangeListener pcl);
// Регистрация подписчиков, информируемых
// об изменении значения свойства
public abstract void removePropertyChangeListener
(PropertyChangeListener pcl);
// Аннулирование регистрации
. . .
}
Листинг 16.
public class PropertyEditorManager extends Object {
public static void registerEditor (Class targetType,
Class editorClass);
// Регистрация редактора для типа targetType
public static PropertyEditor findEditor
(Class targetType);
// Возвращает редактор для типа targetType
. . .
}
Листинг 17.
public interface Customizer {
public abstract void setObject (Object bean);
// Устанавливает настраиваемый объект
public abstract void addPropertyChangeListener
(PropertyChangeListener pcl);
// Настройщик должен возбуждать событие
// propertyChange при изменении значения свойства
public abstract void removePropertyChangeListener
(PropertyChangeListener pcl);
}
Листинг 18.
public interface Serializable {
private void writeObject
(java.io.ObjectOutputStream out)
throws IOException;
// Запись объекта в долговременную память
private void readObject
(java.io.ObjectInputStream in)
throws IOException,
ClassNotFoundException;
// Чтение объекта из долговременной памяти - метод,
// обратный writeObject ()
}
Листинг 19.
public interface Externalizable
extends Serializable {
public abstract void writeExternal
(ObjectOutput out) throws IOException;
// Сохранение объекта в нестандартном формате
public abstract void readExternal
(ObjectInput in) throws IOException,
ClassNotFoundException;
// Чтение нестандартно сохраненного объекта -
// метод, обратный writeExternal ()
}
Листинг 20.
public class Beans extends Object {
public static Object instantiate
(ClassLoader cls, String beanName)
throws IOException, ClassNotFoundException;
// Создание экземпляра компонента
public static boolean isDesignTime ();
// Истина, если работа идет в инструментальном
// окружении
public static boolean isGuiAvailable ();
// Истина, если работа идет в графическом окружении
. . .
}
Листинг 21.
public interface Collection {
public abstract boolean add (Object o)
throws ...;
// Включает объект в набор. Возвращает "ложь",
// если объект там уже был
public abstract void addAll (Collection c)
throws ...;
// Включает все элементы одного набора в другой
public abstract boolean remove (Object o)
throws ...;
// Удаляет объект из набора
public abstract void clear () throws ...;
// Удаляет все элементы из набора
public abstract boolean contains (Object o);
// Проверяет, входит ли данный объект в набор
public abstract Iterator iterator ();
// Возвращает итератор набора, позволяющий
// перебирать элементы
public abstract Object [] toArray ();
// Преобразует набор в массив
. . .
}
Листинг 22.
public interface BeanContextChild
extends BeanContextListener {
void setBeanContext (BeanContext bc)
throws PropertyVetoException;
// Ассоциирует контейнер с компонентом.
// Если компонент считает, что новый контейнер ему
// не подходит, он возбуждает исключительную ситуацию.
// Интерфейс BeanContext описывается ниже, на листинге 26
BeanContext getBeanContext ();
// Опрашивает ассоциацию
. . .
}
Листинг 23.
public interface BeanContextListener
extends java.util.EventListener {
void beanContextChanged (BeanContextEvent bce);
// Метод, вызываемый в объектах-подписчиках
// при изменениях контейнера
}
Листинг 24.
public abstract class BeanContextEvent
extends java.util.EventObject {
public BeanContext getBeanContext ();
// Возвращает контейнер, распространяющий событие
public synchronized void setPropagatedFrom
(BeanContext bc);
// Устанавливает первоисточник события
public synchronized BeanContext
getPropagatedFrom ();
// Возвращает первоисточник события
public synchronized boolean isPropagated ();
// Истина, если событие является вторичным
}
Листинг 25.
public abstract class BeanContextMembershipEvent
extends BeanContextEvent {
public boolean isDeltaMember (Object o);
// Истина, если заданный компонент был добавлен
// или удален
public Object [] getDeltas ();
// Возвращает добавленные или удаленные компоненты
public boolean isChildrenAddedEvent ();
// Истина, если имело место добавление компонентов
public boolean isChildrenRemovedEvent ();
// Истина, если имело место удаление компонентов
}
Листинг 26.
public interface BeanContext
extends java.beans.BeanContextChild,
java.util.Collection {
Object instantiateChild (String beanName)
throws IOException, ClassNotFoundException;
// Создает новый экземпляр компонента, заданного
// именем, и включает его в себя как в контейнер
Object hasService (Class serviceClass,
BeanContextChild requestor);
// Истина, если контейнер предоставляет
// запрашиваемый сервис
Object getService (Class serviceClass,
BeanContextChild requestor);
// Возвращает сервисный объект запрашиваемого класса
public java.net.URL getResource (String name,
BeanContextChild requestor);
// Возвращает универсальный локатор ресурса
// с заданным именем
void addBeanContextListener
(BeanContextListener bcl);
void removeBeanContextListener
(BeanContextListener bcl);
. . .
}
Листинг 27.
public class InfoBus extends Object {
public static synchronized InfoBus
open (Component c);
// Получение ссылки на экземпляр шины.
// Аргумент используется для определения контекста
// (контейнера), для которого подходящая шина, возможно,
// уже существует. При необходимости создается
// новый экземпляр шины
public static synchronized InfoBus
open (String busName);
// Получение ссылки на экземпляр шины. Аргумент задает
// желательное имя экземпляра. Обычно используется
// не-компонентами (например, инструментальным
// окружением)
public synchronized void join (InfoBusMember member)
throws PropertyVetoException,
InfoBusMembershipException;
// Включение заданного компонента в число членов шины.
// Компонент, желающий подключиться к шине, должен
// реализовать интерфейс InfoBusMember. Экземпляр
// шины устанавливается в качестве значения свойства
// InfoBus нового члена
public void leave (InfoBusMember member)
throws PropertyVetoException;
// Выведение компонента из числа членов шины.
// Обычно вызывается самим компонентом
public void propertyChange
(PropertyChangeEvent event);
// Обработка события, вызванного изменением значения
// свойства InfoBus у какого-либо члена шины. Служит
// для обеспечения целостности связей между шинами и
// их членами
public void addDataProducer
(InfoBusDataProducer producer);
public void addDataConsumer
(InfoBusDataConsumer consumer);
// Обслуживание подписки на события в экземпляре шины,
// запрашиваемой поставщиками и/или потребителями
// элементов данных
public void fireItemAvailable (String dataItemName,
InfoBusDataProducer producer);
// Распространение среди потребителей события,
// состоящего в том, что на шине появился элемент
// данных с указанным именем, помещенный заданным
// поставщиком
public DataItem findDataItem (String dataItemName,
InfoBusDataConsumer consumer);
// Распространение среди поставщиков события,
// состоящего в том, что заданный потребитель
// нуждается в элементе данных с указанным именем
. . .
}
Листинг 28.
public interface InfoBusMember {
public void setInfoBus (InfoBus infobus)
throws PropertyVetoException;
// Установка шины, ассоциированной с компонентом.
// Обычно вызывается методом InfoBus.join()
public void addInfoBusListener
(VetoableChangeListener vcl);
// Обслуживание подписки на возможность запрета
// изменения свойства InfoBus
public void addInfoBusListener
(PropertyChangeListener pcl);
// Обслуживание подписки на информацию об изменении
// свойства InfoBus
. . .
}
Листинг 29.
public class InfoBusMemberImpl
extends Object implements InfoBusMember {
public void joinInfoBus (String busName)
throws InfoBusMembershipException;
// Подключение к шине с заданным именем
public void leaveInfoBus ()
throws PropertyVetoException,
InfoBusMembershipException;
// Отключение от шины
. . .
}
Листинг 30.
public class InfoBusEvent
extends java.util.EventObject {
InfoBusEvent (String itemName,
InfoBusEventListener source);
// Конструктор. Задаются имя ассоциированного
// элемента данных и источник события
public String getDataItemName ();
// Возвращает имя ассоциированного элемента данных
}
Листинг 31.
public class InfoBusItemRequestedEvent
extends InfoBusEvent {
InfoBusItemRequestedEvent (String itemName,
InfoBusDataConsumer consumer);
// Конструктор. Устанавливает пустое значение
// свойства DataItem и вызывает конструктор
// InfoBusEvent
public void setDataItem (DataItem item);
// Ассоциирует элемент данных с событийным объектом
public DataItem getDataItem ();
// Возвращает ассоциированный элемент данных
public InfoBusDataConsumer getSourceAsConsumer ();
// Возвращает источник события
}
Листинг 32.
public interface Aggregate
extends java.rmi.Remote, java.io.Serializable {
Aggregate getInstanceOf
(Class requestedInterface);
// Возвращает объект, реализующий методы
// заданного интерфейса (класса)
boolean isInstanceOf (Class requestedInterface);
// Истина, если заданный интерфейс (класс) входит
// в число поддерживаемых
Enumeration getTypes ();
// Возвращает набор поддерживаемых интерфейсов
// (классов)
...
}
Comments: info@citmgu.ru
Copyright © CIT