File Source: ArrayListTransferable.java
/*
P/P * Method: com.dmdirc.addons.ui_swing.components.reorderablelist.ArrayListTransferable__static_init
*/
1 /*
2 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
23 package com.dmdirc.addons.ui_swing.components.reorderablelist;
24
25 import com.dmdirc.logger.ErrorLevel;
26 import com.dmdirc.logger.Logger;
27
28 import java.awt.datatransfer.DataFlavor;
29 import java.awt.datatransfer.Transferable;
30 import java.awt.datatransfer.UnsupportedFlavorException;
31 import java.util.ArrayList;
32
33 /**
34 * Arraylist transferable.
35 */
36 public final class ArrayListTransferable implements Transferable {
37
38 /** Local tranfer flavour. */
39 private DataFlavor localArrayListFlavor;
40 /** Serial transfer flavour. */
41 private final DataFlavor serialArrayListFlavor;
42 /** Transferred ArrayList. */
43 private final ArrayList data; //NOPMD
44
45 /**
46 * Initialises the ArrayListTransferable.
47 *
48 * @param alist ArrayList to transfer
49 */
50 public ArrayListTransferable(final ArrayList alist) { //NOPMD
/*
P/P * Method: void com.dmdirc.addons.ui_swing.components.reorderablelist.ArrayListTransferable(ArrayList)
*
* Presumptions:
* init'ed(com.dmdirc.logger.ErrorLevel.LOW)
*
* Postconditions:
* this.data == alist
* init'ed(this.data)
* this.localArrayListFlavor in Addr_Set{null,&new DataFlavor(ArrayListTransferable#1)}
* this.serialArrayListFlavor == &new DataFlavor(ArrayListTransferable#3)
* new DataFlavor(ArrayListTransferable#1) num objects <= 1
* new DataFlavor(ArrayListTransferable#3) num objects == 1
*/
51 super();
52
53 data = alist;
54
55 try {
56 localArrayListFlavor = new DataFlavor(
57 DataFlavor.javaJVMLocalObjectMimeType
58 + ";class=java.util.ArrayList");
59 } catch (ClassNotFoundException e) {
60 Logger.userError(ErrorLevel.LOW, "unable to create data flavor: "
61 + e.getMessage());
62 }
63 serialArrayListFlavor = new DataFlavor(ArrayList.class, "ArrayList"); //NOPMD
64
65 }
66
67 /** {@inheritDoc} */
68 @Override
69 public Object getTransferData(final DataFlavor flavor) throws
70 UnsupportedFlavorException {
/*
P/P * Method: Object getTransferData(DataFlavor)
*
* Preconditions:
* this.localArrayListFlavor != null
* (soft) this.serialArrayListFlavor != null
*
* Presumptions:
* java.awt.datatransfer.DataFlavor:equals(...)@87 != 0 | java.awt.datatransfer.DataFlavor:equals(...)@91 != 0
*
* Postconditions:
* return_value == this.data
* init'ed(return_value)
*/
71 if (!isDataFlavorSupported(flavor)) {
72 throw new UnsupportedFlavorException(flavor);
73 }
74
75 return data;
76 }
77
78 /** {@inheritDoc} */
79 @Override
80 public DataFlavor[] getTransferDataFlavors() {
/*
P/P * Method: DataFlavor[] getTransferDataFlavors()
*
* Preconditions:
* init'ed(this.localArrayListFlavor)
*
* Postconditions:
* return_value == &new DataFlavor[](getTransferDataFlavors#1)
* new DataFlavor[](getTransferDataFlavors#1) num objects == 1
* return_value.length == 2
* return_value[0] == this.localArrayListFlavor
* init'ed(return_value[0])
* return_value[1] == this.serialArrayListFlavor
* init'ed(return_value[1])
*/
81 return new DataFlavor[]{localArrayListFlavor, serialArrayListFlavor, };
82 }
83
84 /** {@inheritDoc} */
85 @Override
86 public boolean isDataFlavorSupported(final DataFlavor flavor) {
/*
P/P * Method: bool isDataFlavorSupported(DataFlavor)
*
* Preconditions:
* this.localArrayListFlavor != null
* (soft) this.serialArrayListFlavor != null
*
* Postconditions:
* init'ed(return_value)
*
* Test Vectors:
* java.awt.datatransfer.DataFlavor:equals(...)@87: {0}, {1}
* java.awt.datatransfer.DataFlavor:equals(...)@91: {0}, {1}
*/
87 if (localArrayListFlavor.equals(flavor)) {
88 return true;
89 }
90
91 if (serialArrayListFlavor.equals(flavor)) {
92 return true;
93 }
94
95 return false;
96 }
97 }
SofCheck Inspector Build Version : 2.17854
| ArrayListTransferable.java |
2009-Jun-25 01:54:24 |
| ArrayListTransferable.class |
2009-Sep-02 17:04:15 |