Improve detection of version in freemind.

This commit is contained in:
Paulo Gustavo Veiga 2015-03-24 22:30:51 -03:00
parent 4c3483006e
commit 1d0d907284
2 changed files with 13 additions and 18 deletions

View File

@ -18,10 +18,12 @@
package com.wisemapping.importer; package com.wisemapping.importer;
import org.jetbrains.annotations.NotNull;
import java.util.*; import java.util.*;
public class VersionNumber public class VersionNumber
implements Comparable { implements Comparable<VersionNumber> {
protected String version_d; protected String version_d;
@ -58,13 +60,13 @@ public class VersionNumber
} }
public int compareTo(final Object otherObject) { public int compareTo(@NotNull final VersionNumber otherObject) {
if (this.equals(otherObject)) { if (this.equals(otherObject)) {
return 0; return 0;
} }
final StringTokenizer ownTokenizer = this.getTokenizer(); final StringTokenizer ownTokenizer = this.getTokenizer();
final StringTokenizer otherTokenizer = ((VersionNumber) otherObject).getTokenizer(); final StringTokenizer otherTokenizer = otherObject.getTokenizer();
while (ownTokenizer.hasMoreTokens()) { while (ownTokenizer.hasMoreTokens()) {
final int ownNumber; final int ownNumber;
@ -112,8 +114,8 @@ public class VersionNumber
return (version_d != null ? version_d.hashCode() : 0); return (version_d != null ? version_d.hashCode() : 0);
} }
@NotNull
protected StringTokenizer getTokenizer() { private StringTokenizer getTokenizer() {
return new StringTokenizer(this.getVersion(), "."); return new StringTokenizer(this.getVersion(), ".");
} }
} }

View File

@ -96,8 +96,9 @@ public class FreemindImporter
final Map freemindMap = (Map) JAXBUtils.getMapObject(input, "com.wisemapping.jaxb.freemind"); final Map freemindMap = (Map) JAXBUtils.getMapObject(input, "com.wisemapping.jaxb.freemind");
final String version = freemindMap.getVersion(); final String version = freemindMap.getVersion();
if (version != null) { if (version == null || version.startsWith("freeplane")) {
throw new ImporterException("You seems to be be trying to import a Freeplane map. FreePlane is not supported format.");
} else {
final VersionNumber mapVersion = new VersionNumber(version); final VersionNumber mapVersion = new VersionNumber(version);
if (mapVersion.isGreaterThan(FreemindConstant.SUPPORTED_FREEMIND_VERSION)) { if (mapVersion.isGreaterThan(FreemindConstant.SUPPORTED_FREEMIND_VERSION)) {
throw new ImporterException("FreeMind version " + mapVersion.getVersion() + " is not supported."); throw new ImporterException("FreeMind version " + mapVersion.getVersion() + " is not supported.");
@ -134,11 +135,7 @@ public class FreemindImporter
result.setTitle(mapName); result.setTitle(mapName);
result.setDescription(description); result.setDescription(description);
} catch (JAXBException e) { } catch (JAXBException | IOException | TransformerException e) {
throw new ImporterException(e);
} catch (IOException e) {
throw new ImporterException(e);
} catch (TransformerException e) {
throw new ImporterException(e); throw new ImporterException(e);
} }
return result; return result;
@ -330,7 +327,7 @@ public class FreemindImporter
} }
} }
private int getChildrenCountSameSide(@NotNull List<Object> freeChildren, Node freeChild) { private int getChildrenCountSameSide(@NotNull List<Object> freeChildren, Node freeChild) {
int result = 0; int result = 0;
String childSide = freeChild.getPOSITION(); String childSide = freeChild.getPOSITION();
if (childSide == null) { if (childSide == null) {
@ -500,11 +497,7 @@ public class FreemindImporter
} }
final Boolean folded = Boolean.valueOf(freeNode.getFOLDED()); final Boolean folded = Boolean.valueOf(freeNode.getFOLDED());
if (folded) { wiseTopic.setShrink(folded);
wiseTopic.setShrink(folded);
}
} }