source: josm/trunk/src/org/openstreetmap/josm/gui/datatransfer/TagTransferable.java@ 13724

Last change on this file since 13724 was 11015, checked in by Don-vip, 8 years ago

sonar - pmd:ImmutableField - Immutable Field

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.datatransfer;
3
4import java.awt.datatransfer.DataFlavor;
5import java.awt.datatransfer.Transferable;
6import java.awt.datatransfer.UnsupportedFlavorException;
7import java.io.IOException;
8import java.util.Map.Entry;
9import java.util.stream.Stream;
10
11import org.openstreetmap.josm.gui.datatransfer.data.TagTransferData;
12
13/**
14 * This is a transferable that only transfers the tags.
15 * @author Michael Zangl
16 * @since 10637
17 */
18public class TagTransferable implements Transferable {
19 private final TagTransferData data;
20
21 /**
22 * Transfer the tag transfer data.
23 * @param data The data.
24 */
25 public TagTransferable(TagTransferData data) {
26 this.data = data;
27 }
28
29 @Override
30 public DataFlavor[] getTransferDataFlavors() {
31 return new DataFlavor[] {TagTransferData.FLAVOR, DataFlavor.stringFlavor};
32 }
33
34 @Override
35 public boolean isDataFlavorSupported(DataFlavor flavor) {
36 return Stream.of(getTransferDataFlavors()).anyMatch(f -> f.equals(flavor));
37 }
38
39 @Override
40 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
41 if (DataFlavor.stringFlavor.equals(flavor)) {
42 return getStringData();
43 } else if (TagTransferData.FLAVOR.equals(flavor)) {
44 return data;
45 } else {
46 throw new UnsupportedFlavorException(flavor);
47 }
48 }
49
50 private String getStringData() {
51 StringBuilder string = new StringBuilder();
52 for (Entry<String, String> e : data.getTags().entrySet()) {
53 if (string.length() > 0) {
54 string.append('\n');
55 }
56 string.append(e.getKey());
57 string.append('=');
58 string.append(e.getValue());
59 }
60 return string.toString();
61 }
62}
Note: See TracBrowser for help on using the repository browser.