| package org.eclipse.ui.internal.keybindings; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import org.eclipse.swt.SWT; |
| import org.eclipse.ui.IMemento; |
| |
| public final class Platform { |
| |
| public final static String TAG = "platform"; |
| |
| public static Platform create() { |
| return new Platform(Path.create()); |
| } |
| |
| public static Platform create(Path path) |
| throws IllegalArgumentException { |
| return new Platform(path); |
| } |
| |
| public static Platform read(IMemento memento) |
| throws IllegalArgumentException { |
| if (memento == null) |
| throw new IllegalArgumentException(); |
| |
| return Platform.create(Path.read(memento.getChild(Path.TAG))); |
| } |
| |
| public static void write(IMemento memento, Platform platform) |
| throws IllegalArgumentException { |
| if (memento == null || platform == null) |
| throw new IllegalArgumentException(); |
| |
| Path.write(memento.createChild(Path.TAG), platform.getPath()); |
| } |
| |
| public static Platform system() { |
| List elements = new ArrayList(); |
| String platform = SWT.getPlatform(); |
| |
| if (platform != null) { |
| elements.add(Element.create(platform)); |
| } |
| |
| return Platform.create(Path.create(elements)); |
| } |
| |
| private Path path; |
| |
| private Platform(Path path) |
| throws IllegalArgumentException { |
| super(); |
| |
| if (path == null) |
| throw new IllegalArgumentException(); |
| |
| this.path = path; |
| } |
| |
| public Path getPath() { |
| return path; |
| } |
| |
| public int match(Platform platform) |
| throws IllegalArgumentException { |
| if (platform == null) |
| throw new IllegalArgumentException(); |
| |
| return (path.match(platform.path)); |
| } |
| |
| public int compareTo(Object object) { |
| if (!(object instanceof Platform)) |
| throw new ClassCastException(); |
| |
| return path.compareTo(((Platform) object).path); |
| } |
| |
| public boolean equals(Object object) { |
| if (!(object instanceof Platform)) |
| return false; |
| |
| return path.equals(((Platform) object).path); |
| } |
| } |