[Model, Buildpaths] Revise LTK model and buildpaths
- Correct namings
- Add more nullable annotations
- Fix missing synchronization in
AbstractSourceModelInfo.removeAttachment
- Rename SourceModelStamp.getSourceStamp to .getContentStamp to be in
line with method in SourceUnit
- Fix BuildpathUtils.isExcluded
diff --git a/ltk/_assemblies/org.eclipse.statet.ltk-feature/feature.xml b/ltk/_assemblies/org.eclipse.statet.ltk-feature/feature.xml
index 59bd7da..6177e03 100644
--- a/ltk/_assemblies/org.eclipse.statet.ltk-feature/feature.xml
+++ b/ltk/_assemblies/org.eclipse.statet.ltk-feature/feature.xml
@@ -41,14 +41,14 @@
unpack="false"/>
<plugin
- id="org.eclipse.statet.ltk.buildpaths.core"
+ id="org.eclipse.statet.ltk.buildpath.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
- id="org.eclipse.statet.ltk.buildpaths.ui"
+ id="org.eclipse.statet.ltk.buildpath.ui"
download-size="0"
install-size="0"
version="0.0.0"
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.classpath b/ltk/org.eclipse.statet.ltk.buildpath.core/.classpath
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/.classpath
rename to ltk/org.eclipse.statet.ltk.buildpath.core/.classpath
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.gitignore b/ltk/org.eclipse.statet.ltk.buildpath.core/.gitignore
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/.gitignore
rename to ltk/org.eclipse.statet.ltk.buildpath.core/.gitignore
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.project b/ltk/org.eclipse.statet.ltk.buildpath.core/.project
similarity index 92%
copy from ltk/org.eclipse.statet.ltk.buildpaths.ui/.project
copy to ltk/org.eclipse.statet.ltk.buildpath.core/.project
index 7bb934b..da4bd38 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.project
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.statet.ltk.buildpaths.ui</name>
+ <name>org.eclipse.statet.ltk.buildpath.core</name>
<comment></comment>
<projects>
</projects>
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.core.resources.prefs b/ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.core.resources.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.core.resources.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.core.runtime.prefs b/ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.core.runtime.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.core.runtime.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.jdt.core.prefs b/ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.jdt.core.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.jdt.core.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.jdt.ui.prefs b/ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/.settings/org.eclipse.jdt.ui.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.core/.settings/org.eclipse.jdt.ui.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/META-INF/MANIFEST.MF b/ltk/org.eclipse.statet.ltk.buildpath.core/META-INF/MANIFEST.MF
similarity index 79%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/META-INF/MANIFEST.MF
rename to ltk/org.eclipse.statet.ltk.buildpath.core/META-INF/MANIFEST.MF
index b395bca..13d520a 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/META-INF/MANIFEST.MF
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/META-INF/MANIFEST.MF
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.statet.ltk.buildpaths.core;singleton:=true
+Bundle-SymbolicName: org.eclipse.statet.ltk.buildpath.core;singleton:=true
Bundle-Version: 4.2.0.qualifier
Bundle-Vendor: Eclipse StatET
Bundle-Name: StatET LTK - Buildpath - Core (Incubation)
@@ -10,4 +10,4 @@
org.eclipse.core.resources;visibility:=reexport
Import-Package: org.eclipse.statet.jcommons.collections;version="4.2.0",
org.eclipse.statet.jcommons.lang;version="4.2.0"
-Export-Package: org.eclipse.statet.ltk.buildpaths.core
+Export-Package: org.eclipse.statet.ltk.buildpath.core
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/about.html b/ltk/org.eclipse.statet.ltk.buildpath.core/about.html
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/about.html
rename to ltk/org.eclipse.statet.ltk.buildpath.core/about.html
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/build.properties b/ltk/org.eclipse.statet.ltk.buildpath.core/build.properties
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/build.properties
rename to ltk/org.eclipse.statet.ltk.buildpath.core/build.properties
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/plugin.xml b/ltk/org.eclipse.statet.ltk.buildpath.core/plugin.xml
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/plugin.xml
rename to ltk/org.eclipse.statet.ltk.buildpath.core/plugin.xml
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/internal/ltk/buildpaths/core/Messages.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/internal/ltk/buildpath/core/Messages.java
similarity index 86%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/internal/ltk/buildpaths/core/Messages.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/internal/ltk/buildpath/core/Messages.java
index 3b925cd..c3fc218 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/internal/ltk/buildpaths/core/Messages.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/internal/ltk/buildpath/core/Messages.java
@@ -12,11 +12,15 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.core;
+package org.eclipse.statet.internal.ltk.buildpath.core;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/internal/ltk/buildpaths/core/Messages.properties b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/internal/ltk/buildpath/core/Messages.properties
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/internal/ltk/buildpaths/core/Messages.properties
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/internal/ltk/buildpath/core/Messages.properties
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathAttribute.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BasicBuildpathAttribute.java
similarity index 68%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathAttribute.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BasicBuildpathAttribute.java
index 44bf248..b81771a 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathAttribute.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BasicBuildpathAttribute.java
@@ -12,20 +12,24 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
import java.util.Objects;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-public class BuildpathAttribute implements IBuildpathAttribute {
+
+@NonNullByDefault
+public class BasicBuildpathAttribute implements BuildpathAttribute {
private final String name;
- private final String value;
+ private final @Nullable String value;
- public BuildpathAttribute(final String name, final String value) {
+ public BasicBuildpathAttribute(final String name, final @Nullable String value) {
this.name= name;
this.value= value;
}
@@ -37,23 +41,23 @@
}
@Override
- public String getValue() {
+ public @Nullable String getValue() {
return this.value;
}
@Override
public int hashCode() {
- return this.name.hashCode() * 17 + Objects.hashCode(this.value.hashCode());
+ return this.name.hashCode() * 17 + Objects.hashCode(this.value);
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (this == obj) {
return true;
}
- if (obj instanceof BuildpathAttribute) {
- final BuildpathAttribute other= (BuildpathAttribute) obj;
+ if (obj instanceof BasicBuildpathAttribute) {
+ final BasicBuildpathAttribute other= (BasicBuildpathAttribute)obj;
return (this.name.equals(other.name)
&& Objects.equals(this.value, other.value) );
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathElement.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BasicBuildpathElement.java
similarity index 67%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathElement.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BasicBuildpathElement.java
index 790d5fa..4d4c29d 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathElement.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BasicBuildpathElement.java
@@ -12,7 +12,9 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
+
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
import java.util.Objects;
@@ -20,10 +22,14 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.lang.ObjectUtils;
-public class BuildpathElement implements IBuildpathElement {
+@NonNullByDefault
+public class BasicBuildpathElement implements BuildpathElement {
private static final ImList<String> UNINITIALIZED_PATTERNS= ImCollections.newList("UNINITIALIZED_PATTERNS"); //$NON-NLS-1$
@@ -56,10 +62,10 @@
/**
* Patterns allowing to include/exclude portions of the resource tree denoted by this entry path.
*/
- private final ImList<IPath> inclusionPatterns;
- private volatile ImList<String> fullInclusionPatterns;
- private final ImList<IPath> exclusionPatterns;
- private volatile ImList<String> fullExclusionPatterns;
+ private final @Nullable ImList<IPath> inclusionPatterns;
+ private volatile @Nullable ImList<String> fullInclusionPatterns;
+ private final @Nullable ImList<IPath> exclusionPatterns;
+ private volatile @Nullable ImList<String> fullExclusionPatterns;
/**
@@ -73,7 +79,7 @@
* an analogous form and meaning as the variable path, namely the first segment
* is the name of a classpath variable.
*/
- private final IPath sourceAttachmentPath;
+ private final @Nullable IPath sourceAttachmentPath;
/**
* Describes the path within the source archive where package fragments
@@ -82,17 +88,17 @@
* if and only if <code>getSourceAttachmentPath</code> returns
* a non-<code>null</code> value.
*/
- private final IPath sourceAttachmentRootPath;
+ private final @Nullable IPath sourceAttachmentRootPath;
/**
- * See {@link IBuildpathElement#getReferencingEntry()}
+ * See {@link BuildpathElement#getReferencingEntry()}
*/
- private final IBuildpathElement referencingElement;
+ private final @Nullable BuildpathElement referencingElement;
/**
* Specific output location (for this source entry)
*/
- private final IPath specificOutputPath;
+ private final @Nullable IPath specificOutputPath;
/**
* The export flag
@@ -102,46 +108,34 @@
/**
* The extra attributes
*/
- private final ImList<IBuildpathAttribute> extraAttributes;
+ private final ImList<BuildpathAttribute> extraAttributes;
/**
* Creates a class path entry of the specified kind with the given path.
*/
- public BuildpathElement(final BuildpathElementType type,
- final IPath path, final ImList<IPath> inclusionPatterns, final ImList<IPath> exclusionPatterns,
- final IPath sourceAttachmentPath, final IPath sourceAttachmentRootPath,
- final IPath specificOutputLocation,
- final IBuildpathElement referencingEntry,
+ public BasicBuildpathElement(final BuildpathElementType type,
+ final IPath path, final @Nullable ImList<IPath> inclusionPatterns, final @Nullable ImList<IPath> exclusionPatterns,
+ final @Nullable IPath sourceAttachmentPath, final @Nullable IPath sourceAttachmentRootPath,
+ final @Nullable IPath specificOutputLocation,
+ final @Nullable BuildpathElement referencingEntry,
final boolean isExported,
- final ImList<IBuildpathAttribute> extraAttributes) {
- if (type == null) {
- throw new NullPointerException("type"); //$NON-NLS-1$
- }
- if (path == null) {
- throw new NullPointerException("path"); //$NON-NLS-1$
- }
-
- this.type= type;
- this.path= path;
+ final @Nullable ImList<BuildpathAttribute> extraAttributes) {
+ this.type= nonNullAssert(type);
+ this.path= nonNullAssert(path);
this.inclusionPatterns= inclusionPatterns;
+ this.fullInclusionPatterns= UNINITIALIZED_PATTERNS;
this.exclusionPatterns= exclusionPatterns;
+ this.fullExclusionPatterns= UNINITIALIZED_PATTERNS;
this.referencingElement= referencingEntry;
- if (this.inclusionPatterns != null && !this.inclusionPatterns.isEmpty()) {
- this.fullInclusionPatterns= UNINITIALIZED_PATTERNS;
- }
- if (this.exclusionPatterns != null && !this.exclusionPatterns.isEmpty()) {
- this.fullExclusionPatterns= UNINITIALIZED_PATTERNS;
- }
-
this.sourceAttachmentPath= sourceAttachmentPath;
this.sourceAttachmentRootPath= sourceAttachmentRootPath;
this.specificOutputPath= specificOutputLocation;
this.isExported= isExported;
- this.extraAttributes= (extraAttributes != null) ? extraAttributes : ImCollections.<IBuildpathAttribute>emptyList();
+ this.extraAttributes= (extraAttributes != null) ? extraAttributes : ImCollections.<BuildpathAttribute>emptyList();
}
@@ -161,18 +155,21 @@
}
@Override
- public final ImList<IPath> getInclusionPatterns() {
+ public final @Nullable ImList<IPath> getInclusionPatterns() {
return this.inclusionPatterns;
}
@Override
- public final ImList<IPath> getExclusionPatterns() {
+ public final @Nullable ImList<IPath> getExclusionPatterns() {
return this.exclusionPatterns;
}
- private ImList<String> createFullPatterns(final ImList<IPath> patterns) {
+ private @Nullable ImList<String> createFullPatterns(final @Nullable ImList<IPath> patterns) {
+ if (patterns == null || patterns.isEmpty()) {
+ return null;
+ }
final int length= patterns.size();
- final String[] fullPatterns= new String[length];
+ final String[] fullPatterns= new @NonNull String[length];
final IPath prefixPath= this.path.removeTrailingSeparator();
for (int i= 0; i < length; i++) {
fullPatterns[i]= prefixPath.append(patterns.get(i)).toString();
@@ -180,7 +177,7 @@
return ImCollections.newList(fullPatterns);
}
- public ImList<String> getFullInclusionPatterns() {
+ public @Nullable ImList<String> getFullInclusionPatterns() {
ImList<String> patterns= this.fullInclusionPatterns;
if (patterns == UNINITIALIZED_PATTERNS) {
patterns= this.fullInclusionPatterns= createFullPatterns(this.inclusionPatterns);
@@ -188,7 +185,7 @@
return patterns;
}
- public ImList<String> getFullExclusionPatterns() {
+ public @Nullable ImList<String> getFullExclusionPatterns() {
ImList<String> patterns= this.fullExclusionPatterns;
if (patterns == UNINITIALIZED_PATTERNS) {
patterns= this.fullExclusionPatterns= createFullPatterns(this.exclusionPatterns);
@@ -197,18 +194,18 @@
}
@Override
- public IPath getOutputPath() {
+ public @Nullable IPath getOutputPath() {
return this.specificOutputPath;
}
@Override
- public ImList<IBuildpathAttribute> getExtraAttributes() {
+ public ImList<BuildpathAttribute> getExtraAttributes() {
return this.extraAttributes;
}
- public IBuildpathAttribute getAttribute(final String name) {
- for (final IBuildpathAttribute attribute : this.extraAttributes) {
+ public @Nullable BuildpathAttribute getAttribute(final String name) {
+ for (final BuildpathAttribute attribute : this.extraAttributes) {
if (attribute.getName().equals(name)) {
return attribute;
}
@@ -218,15 +215,15 @@
@Override
- public IPath getSourceAttachmentPath() {
+ public @Nullable IPath getSourceAttachmentPath() {
return this.sourceAttachmentPath;
}
- public IPath getSourceAttachmentRootPath() {
+ public @Nullable IPath getSourceAttachmentRootPath() {
return this.sourceAttachmentRootPath;
}
- public IBuildpathElement getReferencingEntry() {
+ public @Nullable BuildpathElement getReferencingEntry() {
return this.referencingElement;
}
@@ -242,19 +239,19 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (this == obj) {
return true;
}
- if (obj instanceof BuildpathElement) {
- final BuildpathElement other= (BuildpathElement) obj;
+ if (obj instanceof BasicBuildpathElement) {
+ final BasicBuildpathElement other= (BasicBuildpathElement)obj;
return (this.type == other.type
&& this.isExported == other.isExported()
&& this.path.equals(other.getPath())
&& Objects.equals(this.sourceAttachmentPath, other.sourceAttachmentPath)
&& Objects.equals(getSourceAttachmentRootPath(), other.sourceAttachmentRootPath)
- && BuildpathsUtils.equalPatterns(this.inclusionPatterns, other.getInclusionPatterns())
- && BuildpathsUtils.equalPatterns(this.exclusionPatterns, other.getExclusionPatterns())
+ && BuildpathUtils.equalPatterns(this.inclusionPatterns, other.getInclusionPatterns())
+ && BuildpathUtils.equalPatterns(this.exclusionPatterns, other.getExclusionPatterns())
&& Objects.equals(this.specificOutputPath, other.specificOutputPath)
&& this.extraAttributes.equals(other.extraAttributes) );
}
@@ -263,25 +260,23 @@
@Override
public String toString() {
- final ObjectUtils.ToStringBuilder sb= new ObjectUtils.ToStringBuilder("BuildpathElement"); //$NON-NLS-1$
+ final ObjectUtils.ToStringBuilder sb= new ObjectUtils.ToStringBuilder("BasicBuildpathElement"); //$NON-NLS-1$
sb.append(" ["); //$NON-NLS-1$
sb.append(this.type.getName());
sb.append("]:"); //$NON-NLS-1$
sb.append(getPath().toString());
sb.addProp("including", getInclusionPatterns()); //$NON-NLS-1$
sb.addProp("excluding", getExclusionPatterns()); //$NON-NLS-1$
- if (getSourceAttachmentPath() != null) {
- sb.addProp("sourcePath", getSourceAttachmentPath().toString()); //$NON-NLS-1$
- if (getSourceAttachmentRootPath() != null) {
+ sb.addProp("sourcePath", getSourceAttachmentPath()); //$NON-NLS-1$
+ { final IPath rootPath= getSourceAttachmentRootPath();
+ if (rootPath != null) {
sb.append(':');
- sb.append(getSourceAttachmentRootPath().toString());
+ sb.append(rootPath.toString());
}
}
- if (getOutputPath() != null) {
- sb.addProp("outputPath", getOutputPath()); //$NON-NLS-1$
- }
+ sb.addProp("outputPath", getOutputPath()); //$NON-NLS-1$
sb.addProp("isExported", this.isExported);
- final ImList<IBuildpathAttribute> attributes= getExtraAttributes();
+ final ImList<BuildpathAttribute> attributes= getExtraAttributes();
if (!attributes.isEmpty()) {
sb.addProp("extraAttributes", attributes); //$NON-NLS-1$
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/IBuildpathAttribute.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathAttribute.java
similarity index 80%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/IBuildpathAttribute.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathAttribute.java
index 0b82c48..a63b030 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/IBuildpathAttribute.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathAttribute.java
@@ -12,10 +12,14 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-public interface IBuildpathAttribute {
+@NonNullByDefault
+public interface BuildpathAttribute {
String SOURCE_ATTACHMENT= "Source.path"; //$NON-NLS-1$
@@ -32,6 +36,6 @@
String getName();
- String getValue();
+ @Nullable String getValue();
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/IBuildpathElement.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathElement.java
similarity index 70%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/IBuildpathElement.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathElement.java
index bb76041..c8fffb4 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/IBuildpathElement.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathElement.java
@@ -12,14 +12,17 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
import org.eclipse.core.runtime.IPath;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-public interface IBuildpathElement {
+@NonNullByDefault
+public interface BuildpathElement {
String SOURCE= "Source"; //$NON-NLS-1$
@@ -33,16 +36,16 @@
IPath getPath();
- ImList<IPath> getInclusionPatterns();
- ImList<IPath> getExclusionPatterns();
+ @Nullable ImList<IPath> getInclusionPatterns();
+ @Nullable ImList<IPath> getExclusionPatterns();
- Object getSourceAttachmentPath();
+ @Nullable Object getSourceAttachmentPath();
- IPath getOutputPath();
+ @Nullable IPath getOutputPath();
boolean isExported();
- ImList<IBuildpathAttribute> getExtraAttributes();
+ ImList<BuildpathAttribute> getExtraAttributes();
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathElementType.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathElementType.java
similarity index 84%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathElementType.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathElementType.java
index aef5800..a0a66ac 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathElementType.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathElementType.java
@@ -12,11 +12,14 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+@NonNullByDefault
public class BuildpathElementType {
@@ -58,12 +61,12 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof BuildpathElementType) {
- final BuildpathElementType other= (BuildpathElementType) obj;
+ final BuildpathElementType other= (BuildpathElementType)obj;
return (this.name == other.name);
}
return false;
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathInitializer.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathInitializer.java
similarity index 91%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathInitializer.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathInitializer.java
index 3a4f213..1a656f5 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathInitializer.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathInitializer.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
import java.util.HashSet;
import java.util.List;
@@ -29,7 +29,7 @@
import org.eclipse.statet.jcommons.collections.ImList;
-import org.eclipse.statet.internal.ltk.buildpaths.core.Messages;
+import org.eclipse.statet.internal.ltk.buildpath.core.Messages;
public abstract class BuildpathInitializer {
@@ -58,7 +58,7 @@
public static final int NAME_COLLISION= 977;
- private static final IStatus VERIFIED_OK= new Status(IStatus.OK, LTKBuildpathsCore.BUNDLE_ID, 0, "OK", null); //$NON-NLS-1$
+ private static final IStatus VERIFIED_OK= new Status(IStatus.OK, LtkBuildpaths.BUNDLE_ID, 0, "OK", null); //$NON-NLS-1$
public boolean canUpdateContainer(final IPath path, final IProject project) {
@@ -119,7 +119,7 @@
* the given buildpath and output location are compatible, otherwise a status
* object indicating what is wrong with the buildpath or output location
*/
- public IStatus validateBuildpath(final IProject project, final List<IBuildpathElement> rawBuildpath) {
+ public IStatus validateBuildpath(final IProject project, final List<BuildpathElement> rawBuildpath) {
// tolerate null path, it will be reset to default
if (rawBuildpath == null) {
return VERIFIED_OK;
@@ -127,7 +127,7 @@
// check duplicate entries on raw buildpath only
{ final Set<IPath> pathes= new HashSet<>(rawBuildpath.size());
- for (final IBuildpathElement element : rawBuildpath) {
+ for (final BuildpathElement element : rawBuildpath) {
final IPath path= element.getPath();
if (!pathes.add(path)){
return createErrorStatus(NAME_COLLISION, NLS.bind(
@@ -137,7 +137,7 @@
}
}
- for (final IBuildpathElement element : rawBuildpath) {
+ for (final BuildpathElement element : rawBuildpath) {
final IStatus status= validateBuildpathEntry(project, element);
if (status.getSeverity() == IStatus.ERROR) {
return status;
@@ -147,14 +147,14 @@
return VERIFIED_OK;
}
- protected IStatus validateBuildpathEntry(final IProject project, final IBuildpathElement entry) {
+ protected IStatus validateBuildpathEntry(final IProject project, final BuildpathElement entry) {
final IPath path= entry.getPath();
// Build some common strings for status message
final String projectName= project.getName();
switch (entry.getTypeName()) {
- case IBuildpathElement.SOURCE:
+ case BuildpathElement.SOURCE:
if (!path.isAbsolute() || path.isEmpty()) {
return createErrorStatus(INVALID_BUILDPATH, NLS.bind(
Messages.BuildpathStatus_Entry_IllegalSourceFolderPath_message,
@@ -171,11 +171,11 @@
}
// Validate extra attributes
- final ImList<IBuildpathAttribute> extraAttributes= entry.getExtraAttributes();
+ final ImList<BuildpathAttribute> extraAttributes= entry.getExtraAttributes();
if (extraAttributes != null) {
final int length= extraAttributes.size();
final Set<String> set= new HashSet<>(length);
- for (final IBuildpathAttribute attribute : extraAttributes) {
+ for (final BuildpathAttribute attribute : extraAttributes) {
if (!set.add(attribute.getName())) {
return createErrorStatus(NAME_COLLISION, NLS.bind(
Messages.BuildpathStatus_Entry_DuplicateExtraAttribute_message, new String[] {
@@ -191,7 +191,7 @@
}
protected IStatus createErrorStatus(final int code, final String message) {
- return new Status(IStatus.ERROR, LTKBuildpathsCore.BUNDLE_ID, code, message, null);
+ return new Status(IStatus.ERROR, LtkBuildpaths.BUNDLE_ID, code, message, null);
}
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathsUtils.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathUtils.java
similarity index 90%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathsUtils.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathUtils.java
index 8a9656e..b3a19a3 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/BuildpathsUtils.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/BuildpathUtils.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
import java.util.Iterator;
import java.util.List;
@@ -23,18 +23,23 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-public class BuildpathsUtils {
+@NonNullByDefault
+public class BuildpathUtils {
- public static final boolean equalPattern(final IPath pattern1, final IPath pattern2) {
+ @SuppressWarnings("null")
+ public static final boolean equalPattern(final @Nullable IPath pattern1, final @Nullable IPath pattern2) {
return (pattern1 == pattern2)
|| (pattern1 != null && pattern1.equals(pattern2)
&& pattern1.hasTrailingSeparator() == pattern2.hasTrailingSeparator() );
}
- public static boolean equalPatterns(final List<IPath> patterns1, final List<IPath> patterns2) {
+ public static boolean equalPatterns(final @Nullable List<IPath> patterns1, final @Nullable List<IPath> patterns2) {
if (patterns1 == patterns2) {
return true;
}
@@ -53,13 +58,13 @@
}
- public static ImList<IPath> decodePatterns(final String sequence) {
+ public static @Nullable ImList<IPath> decodePatterns(final @Nullable String sequence) {
if (sequence != null) {
if (sequence.isEmpty()) {
return ImCollections.emptyList();
}
final String[] patterns= sequence.split("\\|");
- final IPath[] paths= new IPath[patterns.length];
+ final IPath[] paths= new @NonNull IPath[patterns.length];
int index= 0;
for (int j= 0; j < patterns.length; j++) {
final String pattern= patterns[j];
@@ -73,7 +78,7 @@
return null;
}
- public static String encodePatterns(final ImList<IPath> patterns) {
+ public static @Nullable String encodePatterns(final @Nullable ImList<IPath> patterns) {
if (patterns != null) {
if (patterns.isEmpty()) {
return ""; //$NON-NLS-1$
@@ -95,23 +100,23 @@
public final static boolean isExcluded(final IResource resource,
- final IBuildpathElement element) {
+ final BuildpathElement element) {
final IPath path= resource.getFullPath();
final int resourceType= resource.getType();
- final ImList<String> inclusionPatterns= ((BuildpathElement) element).getFullInclusionPatterns();
- final ImList<String> exclusionPatterns= ((BuildpathElement) element).getFullExclusionPatterns();
+ final ImList<String> inclusionPatterns= ((BasicBuildpathElement)element).getFullInclusionPatterns();
+ final ImList<String> exclusionPatterns= ((BasicBuildpathElement)element).getFullExclusionPatterns();
return isExcluded(path.toString(), (resourceType == IResource.FOLDER || resourceType == IResource.PROJECT),
inclusionPatterns, exclusionPatterns );
}
public final static boolean isExcluded(String path, final boolean isFolderPath,
- final ImList<String> inclusionPatterns, final ImList<String> exclusionPatterns) {
+ final @Nullable ImList<String> inclusionPatterns, final @Nullable ImList<String> exclusionPatterns) {
if (inclusionPatterns == null && exclusionPatterns == null) {
return false;
}
CHECK_INCLUSION: if (inclusionPatterns != null) {
- for (final String pattern : exclusionPatterns) {
+ for (final String pattern : inclusionPatterns) {
String folderPattern= pattern;
if (isFolderPath) {
final int lastSlash= pattern.lastIndexOf('/');
@@ -161,7 +166,7 @@
* @param pathSeparator the given path separator
* @return true if the pattern matches the filepath using the pathSepatator, false otherwise
*/
- public static final boolean matchPath(final String pattern, final String filepath,
+ public static final boolean matchPath(final @Nullable String pattern, final @Nullable String filepath,
final boolean isCaseSensitive, final char pathSeparator) {
if (filepath == null) {
return false; // null name cannot match
@@ -381,9 +386,9 @@
* @return true if a sub-pattern matches the subpart of the given name, false otherwise
*/
public static final boolean match(
- final String pattern,
+ final @Nullable String pattern,
final int patternStart, int patternEnd,
- final String name, final int nameStart, int nameEnd,
+ final @Nullable String name, final int nameStart, int nameEnd,
final boolean isCaseSensitive) {
if (name == null) {
return false; // null name cannot match
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/LTKBuildpathsCore.java b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/LtkBuildpaths.java
similarity index 79%
rename from ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/LTKBuildpathsCore.java
rename to ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/LtkBuildpaths.java
index d4748e4..d5f53c4 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/src/org/eclipse/statet/ltk/buildpaths/core/LTKBuildpathsCore.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.core/src/org/eclipse/statet/ltk/buildpath/core/LtkBuildpaths.java
@@ -12,13 +12,16 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.core;
+package org.eclipse.statet.ltk.buildpath.core;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-public class LTKBuildpathsCore {
+@NonNullByDefault
+public class LtkBuildpaths {
- public static final String BUNDLE_ID= "org.eclipse.statet.ltk.buildpaths.core"; //$NON-NLS-1$
+ public static final String BUNDLE_ID= "org.eclipse.statet.ltk.buildpath.core"; //$NON-NLS-1$
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.classpath b/ltk/org.eclipse.statet.ltk.buildpath.ui/.classpath
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.classpath
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.classpath
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.gitignore b/ltk/org.eclipse.statet.ltk.buildpath.ui/.gitignore
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.gitignore
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.gitignore
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.project b/ltk/org.eclipse.statet.ltk.buildpath.ui/.project
similarity index 92%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.project
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.project
index 7bb934b..fdfa196 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.project
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.statet.ltk.buildpaths.ui</name>
+ <name>org.eclipse.statet.ltk.buildpath.ui</name>
<comment></comment>
<projects>
</projects>
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.core.resources.prefs b/ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.core.resources.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.core.resources.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.core.runtime.prefs b/ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.core.runtime.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.core.runtime.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.jdt.core.prefs b/ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.jdt.core.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.jdt.core.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.jdt.ui.prefs b/ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/.settings/org.eclipse.jdt.ui.prefs
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/.settings/org.eclipse.jdt.ui.prefs
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/META-INF/MANIFEST.MF b/ltk/org.eclipse.statet.ltk.buildpath.ui/META-INF/MANIFEST.MF
similarity index 65%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/META-INF/MANIFEST.MF
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/META-INF/MANIFEST.MF
index 392dfac..bf2c7a3 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/META-INF/MANIFEST.MF
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/META-INF/MANIFEST.MF
@@ -1,11 +1,11 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.statet.ltk.buildpaths.ui;singleton:=true
+Bundle-SymbolicName: org.eclipse.statet.ltk.buildpath.ui;singleton:=true
Bundle-Version: 4.2.0.qualifier
Bundle-Vendor: Eclipse StatET
Bundle-Name: StatET LTK - Buildpath - UI (Incubation)
Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.statet.internal.ltk.buildpaths.ui.BuildpathsUIPlugin
+Bundle-Activator: org.eclipse.statet.internal.ltk.buildpath.ui.BuildpathsUIPlugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.statet.ecommons.runtime.core;bundle-version="[4.2.0,4.3.0)",
org.eclipse.statet.ecommons.databinding.core;bundle-version="[4.2.0,4.3.0)",
@@ -13,8 +13,8 @@
org.eclipse.ui,
org.eclipse.jface.databinding,
org.eclipse.ui.ide,
- org.eclipse.statet.ltk.buildpaths.core;bundle-version="[4.2.0,4.3.0)";visibility:=reexport,
+ org.eclipse.statet.ltk.buildpath.core;bundle-version="[4.2.0,4.3.0)";visibility:=reexport,
org.eclipse.statet.ecommons.uimisc;bundle-version="[4.2.0,4.3.0)"
Import-Package: org.eclipse.statet.jcommons.collections;version="4.2.0"
-Export-Package: org.eclipse.statet.ltk.buildpaths.ui,
- org.eclipse.statet.ltk.buildpaths.ui.wizards
+Export-Package: org.eclipse.statet.ltk.buildpath.ui,
+ org.eclipse.statet.ltk.buildpath.ui.wizards
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/about.html b/ltk/org.eclipse.statet.ltk.buildpath.ui/about.html
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/about.html
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/about.html
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/build.properties b/ltk/org.eclipse.statet.ltk.buildpath.ui/build.properties
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/build.properties
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/build.properties
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/exclusion_filter.png b/ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/exclusion_filter.png
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/exclusion_filter.png
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/exclusion_filter.png
Binary files differ
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/inclusion_filter.png b/ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/inclusion_filter.png
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/inclusion_filter.png
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/inclusion_filter.png
Binary files differ
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/output_folder.png b/ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/output_folder.png
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/output_folder.png
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/output_folder.png
Binary files differ
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/source_attachment.png b/ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/source_attachment.png
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/obj_16/source_attachment.png
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/icons/obj_16/source_attachment.png
Binary files differ
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/ovr_16/ignore_optional_problems.png b/ltk/org.eclipse.statet.ltk.buildpath.ui/icons/ovr_16/ignore_optional_problems.png
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/icons/ovr_16/ignore_optional_problems.png
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/icons/ovr_16/ignore_optional_problems.png
Binary files differ
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/plugin.xml b/ltk/org.eclipse.statet.ltk.buildpath.ui/plugin.xml
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/plugin.xml
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/plugin.xml
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathElementImageDescriptor.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathElementImageDescriptor.java
similarity index 97%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathElementImageDescriptor.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathElementImageDescriptor.java
index f095c7e..4bac4e5 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathElementImageDescriptor.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathElementImageDescriptor.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.ui;
+package org.eclipse.statet.internal.ltk.buildpath.ui;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -24,7 +24,7 @@
import org.eclipse.statet.ecommons.ui.SharedUIResources;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIResources;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIResources;
public class BuildpathElementImageDescriptor extends CompositeImageDescriptor {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathsUIPlugin.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathsUIPlugin.java
similarity index 95%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathsUIPlugin.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathsUIPlugin.java
index da55823..d4eeae5 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathsUIPlugin.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathsUIPlugin.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.ui;
+package org.eclipse.statet.internal.ltk.buildpath.ui;
import org.osgi.framework.BundleContext;
@@ -24,13 +24,13 @@
import org.eclipse.statet.ecommons.ui.util.ImageDescriptorRegistry;
import org.eclipse.statet.ecommons.ui.util.ImageRegistryUtil;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIResources;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIResources;
public class BuildpathsUIPlugin extends AbstractUIPlugin {
- public static final String BUNDLE_ID= "org.eclipse.statet.ltk.buildpaths.ui"; //$NON-NLS-1$
+ public static final String BUNDLE_ID= "org.eclipse.statet.ltk.buildpath.ui"; //$NON-NLS-1$
public static final String OVR_IGNORE_OPTIONAL_PROBLEMS_IMAGE_ID= BUNDLE_ID + "/image/ovr/ignore_optional_problems"; //$NON-NLS-1$
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathsUIUtils.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathsUIUtils.java
similarity index 77%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathsUIUtils.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathsUIUtils.java
index 92f19e6..aac6de5 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/BuildpathsUIUtils.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/BuildpathsUIUtils.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.ui;
+package org.eclipse.statet.internal.ltk.buildpath.ui;
import java.util.Iterator;
import java.util.List;
@@ -20,8 +20,8 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathElement;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathListElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathListElement;
public class BuildpathsUIUtils {
@@ -31,8 +31,8 @@
final IProject project) {
final IPath projectPath= project.getProject().getFullPath();
for (final BuildpathListElement listElement : listElements) {
- final IBuildpathElement element= listElement.getCoreElement();
- if (element.getTypeName() == IBuildpathElement.SOURCE) {
+ final BuildpathElement element= listElement.getCoreElement();
+ if (element.getTypeName() == BuildpathElement.SOURCE) {
if (projectPath.equals(element.getPath())) {
return true;
}
@@ -57,10 +57,10 @@
}
switch (element.getType().getName()) {
- case IBuildpathElement.SOURCE:
+ case BuildpathElement.SOURCE:
list.add(0, element);
break;
- case IBuildpathElement.PROJECT:
+ case BuildpathElement.PROJECT:
default:
list.add(element);
break;
@@ -68,8 +68,8 @@
}
- public static IBuildpathElement[] convertToCoreElements(final List<BuildpathListElement> listElements) {
- final IBuildpathElement[] result= new IBuildpathElement[listElements.size()];
+ public static BuildpathElement[] convertToCoreElements(final List<BuildpathListElement> listElements) {
+ final BuildpathElement[] result= new BuildpathElement[listElements.size()];
int i= 0;
for (final Iterator<BuildpathListElement> iter= listElements.iterator(); iter.hasNext();) {
final BuildpathListElement cur= iter.next();
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/ExclusionInclusionComponent.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/ExclusionInclusionComponent.java
similarity index 92%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/ExclusionInclusionComponent.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/ExclusionInclusionComponent.java
index 842444f..62b0f19 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/ExclusionInclusionComponent.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/ExclusionInclusionComponent.java
@@ -13,7 +13,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.ui;
+package org.eclipse.statet.internal.ltk.buildpath.ui;
import java.util.List;
@@ -53,10 +53,10 @@
import org.eclipse.statet.ecommons.ui.util.MessageUtils;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathListElement;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIDescription;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIResources;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathListElement;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIDescription;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIResources;
public class ExclusionInclusionComponent implements ButtonGroup.IActions<IPath> {
@@ -106,8 +106,8 @@
private final IProject project;
private IContainer sourceFolder;
- private final Type inclusionPatterns= new Type(IBuildpathAttribute.FILTER_INCLUSIONS);
- private final Type exclusionPatterns= new Type(IBuildpathAttribute.FILTER_EXCLUSIONS);
+ private final Type inclusionPatterns= new Type(BuildpathAttribute.FILTER_INCLUSIONS);
+ private final Type exclusionPatterns= new Type(BuildpathAttribute.FILTER_EXCLUSIONS);
private final BuildpathsUIDescription uiDescription;
@@ -131,9 +131,9 @@
private Type getType(final String key) {
switch (key) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
return this.inclusionPatterns;
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
return this.exclusionPatterns;
default:
throw new IllegalArgumentException(key);
@@ -260,11 +260,11 @@
final String title;
final String message;
switch (type.attributeName) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
title= Messages.ExclusionInclusion_Choose_Include_title;
message= Messages.ExclusionInclusion_Choose_Include_Multi_description;
break;
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
title= Messages.ExclusionInclusion_Choose_Exclude_title;
message= Messages.ExclusionInclusion_Choose_Exclude_Multi_description;
break;
@@ -295,7 +295,7 @@
public void setFocus(String attributeName) {
if (attributeName == null) {
- attributeName= IBuildpathAttribute.FILTER_INCLUSIONS;
+ attributeName= BuildpathAttribute.FILTER_INCLUSIONS;
}
final Type entry= getType(attributeName);
if (UIAccess.isOkToUse(entry.listControl)) {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/ExclusionInclusionEntryDialog.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/ExclusionInclusionEntryDialog.java
similarity index 94%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/ExclusionInclusionEntryDialog.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/ExclusionInclusionEntryDialog.java
index 63cc697..9d63bc9 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/ExclusionInclusionEntryDialog.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/ExclusionInclusionEntryDialog.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.ui;
+package org.eclipse.statet.internal.ltk.buildpath.ui;
import java.util.ArrayList;
import java.util.List;
@@ -52,9 +52,9 @@
import org.eclipse.statet.ecommons.ui.viewers.TypedViewerFilter;
import org.eclipse.statet.ecommons.ui.workbench.workspace.AbstractResourceSelectionDialog;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathListElement;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIDescription;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathListElement;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIDescription;
public class ExclusionInclusionEntryDialog extends ExtStatusDialog {
@@ -140,12 +140,12 @@
final String title;
switch (attributeKey) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
title= (patternToEdit == null) ?
Messages.ExclusionInclusion_EntryDialog_Include_Add_title :
Messages.ExclusionInclusion_EntryDialog_Include_Edit_title;
break;
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
title= (patternToEdit == null) ?
Messages.ExclusionInclusion_EntryDialog_Exclude_Add_title :
Messages.ExclusionInclusion_EntryDialog_Exclude_Edit_title;
@@ -174,13 +174,13 @@
final String descriptionText, labelText;
switch (this.attributeKey) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
descriptionText= NLS.bind(Messages.ExclusionInclusion_EntryDialog_Exclude_description,
this.uiDescription.getDefaultExt(this.element) );
labelText= NLS.bind(Messages.ExclusionInclusion_EntryDialog_Exclude_Pattern_label,
MessageUtils.processPath(this.element.getPath().toString()) );
break;
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
descriptionText= NLS.bind(Messages.ExclusionInclusion_EntryDialog_Include_description,
this.uiDescription.getDefaultExt(this.element) );
labelText= NLS.bind(Messages.ExclusionInclusion_EntryDialog_Include_Pattern_label,
@@ -237,11 +237,11 @@
private IPath doBrowsePattern() {
final String title, message;
switch (this.attributeKey) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
title= Messages.ExclusionInclusion_Choose_Include_title;
message= Messages.ExclusionInclusion_Choose_Include_Single_description;
break;
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
title= Messages.ExclusionInclusion_Choose_Exclude_title;
message= Messages.ExclusionInclusion_Choose_Exclude_Single_description;
break;
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/Messages.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/Messages.java
similarity index 98%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/Messages.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/Messages.java
index 8f449a8..6af83ce 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/Messages.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/Messages.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.internal.ltk.buildpaths.ui;
+package org.eclipse.statet.internal.ltk.buildpath.ui;
import org.eclipse.osgi.util.NLS;
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/Messages.properties b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/Messages.properties
similarity index 100%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/internal/ltk/buildpaths/ui/Messages.properties
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/internal/ltk/buildpath/ui/Messages.properties
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElement.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElement.java
similarity index 82%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElement.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElement.java
index 558967c..bf711cd 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElement.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElement.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import java.util.ArrayList;
import java.util.List;
@@ -31,11 +31,11 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathElement;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathElementType;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathInitializer;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BasicBuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElementType;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathInitializer;
public class BuildpathListElement {
@@ -57,7 +57,7 @@
private IPath linkTarget;
private final IPath orginalLinkTarget;
- private IBuildpathElement cachedElement;
+ private BuildpathElement cachedElement;
public BuildpathListElement(final Object parent, final IProject project, final BuildpathElementType type,
@@ -81,7 +81,7 @@
}
public BuildpathListElement(final IProject project, final Object parent,
- final IBuildpathElement element, final boolean newElement) {
+ final BuildpathElement element, final boolean newElement) {
this.type= element.getType();
this.parent= parent;
@@ -100,7 +100,7 @@
switch (element.getType().getName()) {
- case IBuildpathElement.SOURCE:
+ case BuildpathElement.SOURCE:
path= path.removeTrailingSeparator();
resource= root.findMember(path);
if (resource == null) {
@@ -113,7 +113,7 @@
linkTarget= resource.getLocation();
}
break;
- case IBuildpathElement.PROJECT:
+ case BuildpathElement.PROJECT:
resource= root.findMember(path);
this.isMissing= (resource == null);
break;
@@ -130,13 +130,13 @@
}
initBuiltinAttributes();
- setAttribute(IBuildpathAttribute.FILTER_INCLUSIONS, element.getInclusionPatterns());
- setAttribute(IBuildpathAttribute.FILTER_EXCLUSIONS, element.getExclusionPatterns());
- setAttribute(IBuildpathAttribute.SOURCE_ATTACHMENT, element.getSourceAttachmentPath());
- setAttribute(IBuildpathAttribute.OUTPUT, element.getOutputPath());
+ setAttribute(BuildpathAttribute.FILTER_INCLUSIONS, element.getInclusionPatterns());
+ setAttribute(BuildpathAttribute.FILTER_EXCLUSIONS, element.getExclusionPatterns());
+ setAttribute(BuildpathAttribute.SOURCE_ATTACHMENT, element.getSourceAttachmentPath());
+ setAttribute(BuildpathAttribute.OUTPUT, element.getOutputPath());
- final ImList<IBuildpathAttribute> extraAttributes= element.getExtraAttributes();
- for (final IBuildpathAttribute attribute : extraAttributes) {
+ final ImList<BuildpathAttribute> extraAttributes= element.getExtraAttributes();
+ for (final BuildpathAttribute attribute : extraAttributes) {
if (setAttribute(attribute.getName(), attribute.getValue()) == null) {
addExtraAttribute(attribute.getName(), attribute.getValue());
}
@@ -147,7 +147,7 @@
/**
* Gets the class path entry kind.
* @return the entry kind
- * @see IBuildpathElement#getType()
+ * @see BuildpathElement#getType()
*/
public BuildpathElementType getType() {
return this.type;
@@ -173,7 +173,7 @@
/**
* Gets the class path entry path.
* @return returns the path
- * @see IBuildpathElement#getPath()
+ * @see BuildpathElement#getPath()
*/
public IPath getPath() {
return this.path;
@@ -203,24 +203,24 @@
}
- public IBuildpathElement getCoreElement() {
+ public BuildpathElement getCoreElement() {
if (this.cachedElement == null) {
this.cachedElement= newCoreElement();
}
return this.cachedElement;
}
- private IBuildpathElement newCoreElement() {
- return new BuildpathElement(this.type, this.path,
- (this.type.isAttributeBuiltin(IBuildpathAttribute.FILTER_INCLUSIONS)) ?
- (ImList<IPath>) getAttributeValue(IBuildpathAttribute.FILTER_INCLUSIONS) : null,
- (this.type.isAttributeBuiltin(IBuildpathAttribute.FILTER_EXCLUSIONS)) ?
- (ImList<IPath>) getAttributeValue(IBuildpathAttribute.FILTER_EXCLUSIONS) : null,
- (this.type.isAttributeBuiltin(IBuildpathAttribute.SOURCE_ATTACHMENT)) ?
- (IPath) getAttributeValue(IBuildpathAttribute.SOURCE_ATTACHMENT) : null,
+ private BuildpathElement newCoreElement() {
+ return new BasicBuildpathElement(this.type, this.path,
+ (this.type.isAttributeBuiltin(BuildpathAttribute.FILTER_INCLUSIONS)) ?
+ (ImList<IPath>) getAttributeValue(BuildpathAttribute.FILTER_INCLUSIONS) : null,
+ (this.type.isAttributeBuiltin(BuildpathAttribute.FILTER_EXCLUSIONS)) ?
+ (ImList<IPath>) getAttributeValue(BuildpathAttribute.FILTER_EXCLUSIONS) : null,
+ (this.type.isAttributeBuiltin(BuildpathAttribute.SOURCE_ATTACHMENT)) ?
+ (IPath) getAttributeValue(BuildpathAttribute.SOURCE_ATTACHMENT) : null,
null,
- (this.type.isAttributeBuiltin(IBuildpathAttribute.OUTPUT)) ?
- (IPath) getAttributeValue(IBuildpathAttribute.OUTPUT) : null,
+ (this.type.isAttributeBuiltin(BuildpathAttribute.OUTPUT)) ?
+ (IPath) getAttributeValue(BuildpathAttribute.OUTPUT) : null,
null,
false,
ImCollections.toList(getExtraAttributes()) );
@@ -234,11 +234,11 @@
private void initBuiltinAttributes() {
for (final String attributeKey : this.type.getAttributeBuiltinKeys()) {
switch (attributeKey) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
createAttribute(attributeKey, ImCollections.emptyList(), true);
continue;
- case IBuildpathAttribute.OUTPUT:
+ case BuildpathAttribute.OUTPUT:
createAttribute(attributeKey, null, true);
continue;
default:
@@ -247,8 +247,8 @@
}
}
- private List<IBuildpathAttribute> getExtraAttributes() {
- final ArrayList<IBuildpathAttribute> list= new ArrayList<>(Math.min(this.children.size(), 8));
+ private List<BuildpathAttribute> getExtraAttributes() {
+ final ArrayList<BuildpathAttribute> list= new ArrayList<>(Math.min(this.children.size(), 8));
for (final Object child : this.children) {
if (child instanceof BuildpathListElementAttribute) {
final BuildpathListElementAttribute attribute= (BuildpathListElementAttribute) child;
@@ -270,7 +270,7 @@
return true;
}
if (!attribute.isBuiltin()) {
-// return !BuildpathsUtils.getDefault().getClasspathAttributeConfigurationDescriptors().containsKey(key);
+// return !BuildpathUtils.getDefault().getClasspathAttributeConfigurationDescriptors().containsKey(key);
}
}
return false;
@@ -335,8 +335,8 @@
}
switch(name) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
if (!(value instanceof ImList<?>)) {
throw new IllegalArgumentException();
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElementAttribute.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElementAttribute.java
similarity index 86%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElementAttribute.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElementAttribute.java
index 7de235a..12a9698 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElementAttribute.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElementAttribute.java
@@ -12,12 +12,12 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.core.BasicBuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
public class BuildpathListElementAttribute {
@@ -81,8 +81,8 @@
return this.status;
}
- public IBuildpathAttribute getCoreAttribute() {
- return new BuildpathAttribute(this.name, (this.value != null) ? this.value.toString() : null);
+ public BuildpathAttribute getCoreAttribute() {
+ return new BasicBuildpathAttribute(this.name, (this.value != null) ? this.value.toString() : null);
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElementComparator.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElementComparator.java
similarity index 89%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElementComparator.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElementComparator.java
index 68ab6e4..9a72a32 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListElementComparator.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListElementComparator.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import org.eclipse.jface.viewers.ContentViewer;
import org.eclipse.jface.viewers.IBaseLabelProvider;
@@ -20,7 +20,7 @@
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
public class BuildpathListElementComparator extends ViewerComparator {
@@ -59,16 +59,16 @@
protected int getCategory(final BuildpathListElement element) {
final String typeName= element.getType().getName();
- if (typeName == IBuildpathElement.SOURCE) {
+ if (typeName == BuildpathElement.SOURCE) {
return SOURCE;
}
- else if (typeName == IBuildpathElement.PROJECT) {
+ else if (typeName == BuildpathElement.PROJECT) {
return PROJECT;
}
- else if (typeName == IBuildpathElement.LIBRARY) {
+ else if (typeName == BuildpathElement.LIBRARY) {
return LIBRARY;
}
- else if (typeName == IBuildpathElement.VARIABLE) {
+ else if (typeName == BuildpathElement.VARIABLE) {
return VARIABLE;
}
else {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListLabelProvider.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListLabelProvider.java
similarity index 88%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListLabelProvider.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListLabelProvider.java
index 05643c6..e077bf3 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathListLabelProvider.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathListLabelProvider.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import java.util.List;
@@ -30,12 +30,12 @@
import org.eclipse.statet.ecommons.ui.util.ImageDescriptorRegistry;
import org.eclipse.statet.ecommons.ui.util.MessageUtils;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.BuildpathElementImageDescriptor;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.BuildpathsUIPlugin;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.Messages;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathInitializer;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathElement;
+import org.eclipse.statet.internal.ltk.buildpath.ui.BuildpathElementImageDescriptor;
+import org.eclipse.statet.internal.ltk.buildpath.ui.BuildpathsUIPlugin;
+import org.eclipse.statet.internal.ltk.buildpath.ui.Messages;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathInitializer;
public class BuildpathListLabelProvider extends LabelProvider {
@@ -72,16 +72,16 @@
else if (element instanceof BuildpathListElementAttribute) {
final BuildpathListElementAttribute attribute= (BuildpathListElementAttribute) element;
switch (attribute.getName()) {
- case IBuildpathAttribute.SOURCE_ATTACHMENT:
+ case BuildpathAttribute.SOURCE_ATTACHMENT:
return this.uiResources.getImage(
BuildpathsUIResources.OBJ_SOURCE_ATTACHMENT_ATTRIBUTE_IMAGE_ID );
- case IBuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
return this.uiResources.getImage(
BuildpathsUIResources.OBJ_INCLUSION_FILTER_ATTRIBUTE_IMAGE_ID );
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
return this.uiResources.getImage(
BuildpathsUIResources.OBJ_EXCLUSION_FILTER_ATTRIBUTE_IMAGE_ID );
- case IBuildpathAttribute.OUTPUT:
+ case BuildpathAttribute.OUTPUT:
return this.uiResources.getImage(
BuildpathsUIResources.OBJ_OUTPUT_FOLDER_ATTRIBUTE_IMAGE_ID );
default:
@@ -110,10 +110,10 @@
private ImageDescriptor getListElementBaseImage(final BuildpathListElement listElement) {
switch (listElement.getType().getName()) {
- case IBuildpathElement.PROJECT:
+ case BuildpathElement.PROJECT:
return this.workbenchImages.getImageDescriptor(
IDE.SharedImages.IMG_OBJ_PROJECT );
- case IBuildpathElement.SOURCE:
+ case BuildpathElement.SOURCE:
if (listElement.getPath().segmentCount() == 1) {
return this.workbenchImages.getImageDescriptor(
IDE.SharedImages.IMG_OBJ_PROJECT );
@@ -130,13 +130,13 @@
public String getListElementText(final BuildpathListElement element) {
final IPath path= element.getPath();
switch (element.getType().getName()) {
- case IBuildpathElement.PROJECT:
+ case BuildpathElement.PROJECT:
String label= path.lastSegment();
if (element.isMissing()) {
label= label + ' ' + Messages.ListLabel_Deco_Missing_label;
}
return label;
- case IBuildpathElement.SOURCE: {
+ case BuildpathElement.SOURCE: {
final String pathLabel= getPathString(path, false);
final StringBuilder sb= new StringBuilder(pathLabel);
final IPath linkTarget= element.getLinkTarget();
@@ -169,11 +169,11 @@
public String getListElementAttributeText(final BuildpathListElementAttribute attribute) {
final String key= attribute.getName();
switch (key) {
- case IBuildpathAttribute.SOURCE_ATTACHMENT: {
+ case BuildpathAttribute.SOURCE_ATTACHMENT: {
final String detail;
final IPath path= (IPath) attribute.getValue();
if (path != null && !path.isEmpty()) {
- if (attribute.getParent().getType().getName() == IBuildpathElement.VARIABLE) {
+ if (attribute.getParent().getType().getName() == BuildpathElement.VARIABLE) {
detail= getVariableString(path);
}
else {
@@ -185,7 +185,7 @@
}
return NLS.bind(Messages.ListLabel_Attribute_SourceAttachment_label, detail);
}
- case IBuildpathAttribute.FILTER_INCLUSIONS: {
+ case BuildpathAttribute.FILTER_INCLUSIONS: {
final String detail;
final List<? extends IPath> patterns= (List<? extends IPath>) attribute.getValue();
if (patterns != null && !patterns.isEmpty()) {
@@ -203,7 +203,7 @@
}
return NLS.bind(Messages.ListLabel_Attribute_Inclusion_label, detail);
}
- case IBuildpathAttribute.FILTER_EXCLUSIONS: {
+ case BuildpathAttribute.FILTER_EXCLUSIONS: {
final String detail;
final List<? extends IPath> patterns= (List<? extends IPath>) attribute.getValue();
if (patterns != null && !patterns.isEmpty()) {
@@ -221,7 +221,7 @@
}
return NLS.bind(Messages.ListLabel_Attribute_Exclusion_label, detail);
}
- case IBuildpathAttribute.OUTPUT: {
+ case BuildpathAttribute.OUTPUT: {
final String detail;
final IPath path= (IPath) attribute.getValue();
if (path != null) {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathsUIDescription.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathsUIDescription.java
similarity index 77%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathsUIDescription.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathsUIDescription.java
index 6df5207..4de41bf 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathsUIDescription.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathsUIDescription.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import java.util.List;
@@ -21,22 +21,22 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathElementType;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElementType;
public class BuildpathsUIDescription {
- public void toListElements(final IProject project, final List<IBuildpathElement> coreElements,
+ public void toListElements(final IProject project, final List<BuildpathElement> coreElements,
final List<BuildpathListElement> listElements) {
- for (final IBuildpathElement element : coreElements) {
+ for (final BuildpathElement element : coreElements) {
listElements.add(new BuildpathListElement(project, null, element, false));
}
}
- public ImList<IBuildpathElement> toCoreElements(final List<BuildpathListElement> listElements) {
- final IBuildpathElement[] coreElements= new IBuildpathElement[listElements.size()];
+ public ImList<BuildpathElement> toCoreElements(final List<BuildpathListElement> listElements) {
+ final BuildpathElement[] coreElements= new BuildpathElement[listElements.size()];
int j= 0;
for (final BuildpathListElement listElement : listElements) {
coreElements[j++]= listElement.getCoreElement();
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathsUIResources.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathsUIResources.java
similarity index 93%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathsUIResources.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathsUIResources.java
index bda144a..bf9433d 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/BuildpathsUIResources.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/BuildpathsUIResources.java
@@ -12,13 +12,13 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.BuildpathsUIPlugin;
+import org.eclipse.statet.internal.ltk.buildpath.ui.BuildpathsUIPlugin;
public class BuildpathsUIResources {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/SourceContainerComponent.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/SourceContainerComponent.java
similarity index 92%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/SourceContainerComponent.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/SourceContainerComponent.java
index dad58c1..8505df3 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/SourceContainerComponent.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/SourceContainerComponent.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui;
+package org.eclipse.statet.ltk.buildpath.ui;
import java.util.ArrayList;
import java.util.HashSet;
@@ -53,11 +53,11 @@
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.Messages;
-import org.eclipse.statet.ltk.buildpaths.core.BuildpathElementType;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathElement;
-import org.eclipse.statet.ltk.buildpaths.ui.wizards.EditFilterWizard;
+import org.eclipse.statet.internal.ltk.buildpath.ui.Messages;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathElementType;
+import org.eclipse.statet.ltk.buildpath.ui.wizards.EditFilterWizard;
public class SourceContainerComponent implements ButtonGroup.IActions<Object> {
@@ -66,7 +66,7 @@
private static final ImIdentitySet<String> FILTER_NO= ImCollections.emptyIdentitySet();
private static final ImIdentitySet<String> FILTER_OUTPUT= ImCollections.newIdentitySet(
- IBuildpathAttribute.OUTPUT );
+ BuildpathAttribute.OUTPUT );
private static final Object[] NO_CHILDREN= new Object[0];
@@ -136,7 +136,7 @@
public boolean isModifyAllowed(final Object element) {
if (element instanceof BuildpathListElement) {
final BuildpathListElement listElement= (BuildpathListElement) element;
- if (listElement.getType().getName() == IBuildpathElement.SOURCE) {
+ if (listElement.getType().getName() == BuildpathElement.SOURCE) {
if (listElement.getPath().equals(SourceContainerComponent.this.project.getFullPath())) {
return false;
}
@@ -166,8 +166,8 @@
if (SourceContainerComponent.this.uiDescription.getAllowEdit(attribute)) {
if (attribute.isBuiltin()) {
switch (attribute.getName()) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
return (!((List<?>) attribute.getValue()).isEmpty());
default:
return (attribute.getValue() != null);
@@ -196,8 +196,8 @@
if (attribute.isBuiltin()) {
final Object value;
switch (attribute.getName()) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
value= ImCollections.emptyList();
break;
default:
@@ -255,7 +255,7 @@
this.outputPathValue= (outputType != null) ?
new WritableValue<>(null, String.class) : null;
this.outputByContainerValue= (outputType != null
- && this.type.isAttributeBuiltin(IBuildpathAttribute.OUTPUT) ) ?
+ && this.type.isAttributeBuiltin(BuildpathAttribute.OUTPUT) ) ?
new WritableValue<>(false, Boolean.TYPE) : null;
}
@@ -370,7 +370,7 @@
for (final Object object : SourceContainerComponent.this.containerList) {
final BuildpathListElement element= (BuildpathListElement) object;
final BuildpathListElementAttribute attribute= element
- .setAttribute(IBuildpathAttribute.OUTPUT, null);
+ .setAttribute(BuildpathAttribute.OUTPUT, null);
if (attribute != null) {
SourceContainerComponent.this.changedContainers.add(element);
@@ -400,7 +400,7 @@
for (final BuildpathListElement element : this.buildpathList) {
if (isElement(element)) {
folders.add(element);
- outputLocationByFolder|= (element.getAttributeValue(IBuildpathAttribute.OUTPUT) != null);
+ outputLocationByFolder|= (element.getAttributeValue(BuildpathAttribute.OUTPUT) != null);
}
}
this.containerList.addAll(folders);
@@ -442,9 +442,9 @@
private void updateExpandStates() {
for (int i= 0; i < this.containerList.size(); i++) {
final BuildpathListElement element= this.containerList.get(i);
- final List<IPath> inclusionPatterns= (List<IPath>) element.getAttributeValue(IBuildpathAttribute.FILTER_INCLUSIONS);
- final List<IPath> exclusionPatterns= (List<IPath>) element.getAttributeValue(IBuildpathAttribute.FILTER_EXCLUSIONS);
- final IPath outputFolder= (IPath) element.getAttributeValue(IBuildpathAttribute.OUTPUT);
+ final List<IPath> inclusionPatterns= (List<IPath>) element.getAttributeValue(BuildpathAttribute.FILTER_INCLUSIONS);
+ final List<IPath> exclusionPatterns= (List<IPath>) element.getAttributeValue(BuildpathAttribute.FILTER_EXCLUSIONS);
+ final IPath outputFolder= (IPath) element.getAttributeValue(BuildpathAttribute.OUTPUT);
if (!inclusionPatterns.isEmpty() || !exclusionPatterns.isEmpty() || outputFolder != null) {
this.containerListViewer.expandToLevel(element, 1);
}
@@ -502,8 +502,8 @@
private BuildpathListElementAttribute editAttribute(final BuildpathListElementAttribute attribute) {
switch (attribute.getName()) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
- case IBuildpathAttribute.FILTER_EXCLUSIONS: {
+ case BuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS: {
final EditFilterWizard wizard= new EditFilterWizard(
ImCollections.toList((List<BuildpathListElement>) this.containerList),
attribute.getParent(), this.uiDescription );
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/BuildPathWizard.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/BuildPathWizard.java
similarity index 89%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/BuildPathWizard.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/BuildPathWizard.java
index 82f70a3..6626708 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/BuildPathWizard.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/BuildPathWizard.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui.wizards;
+package org.eclipse.statet.ltk.buildpath.ui.wizards;
import java.util.ArrayList;
import java.util.List;
@@ -22,9 +22,9 @@
import org.eclipse.statet.jcommons.collections.ImList;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.BuildpathsUIPlugin;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathListElement;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIDescription;
+import org.eclipse.statet.internal.ltk.buildpath.ui.BuildpathsUIPlugin;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathListElement;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIDescription;
public abstract class BuildPathWizard extends Wizard {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/EditFilterWizard.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/EditFilterWizard.java
similarity index 70%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/EditFilterWizard.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/EditFilterWizard.java
index bdbcab3..5e5f97b 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/EditFilterWizard.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/EditFilterWizard.java
@@ -12,14 +12,14 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui.wizards;
+package org.eclipse.statet.ltk.buildpath.ui.wizards;
import org.eclipse.statet.jcommons.collections.ImList;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.Messages;
-import org.eclipse.statet.ltk.buildpaths.core.IBuildpathAttribute;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathListElement;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIDescription;
+import org.eclipse.statet.internal.ltk.buildpath.ui.Messages;
+import org.eclipse.statet.ltk.buildpath.core.BuildpathAttribute;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathListElement;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIDescription;
public class EditFilterWizard extends BuildPathWizard {
@@ -45,8 +45,8 @@
public void setFocus(final String attributeName) {
switch (attributeName) {
- case IBuildpathAttribute.FILTER_INCLUSIONS:
- case IBuildpathAttribute.FILTER_EXCLUSIONS:
+ case BuildpathAttribute.FILTER_INCLUSIONS:
+ case BuildpathAttribute.FILTER_EXCLUSIONS:
this.filterPage.setFocus(attributeName);
break;
default:
@@ -57,8 +57,8 @@
@Override
public boolean performFinish() {
final BuildpathListElement entryToEdit= getEntryToEdit();
- entryToEdit.setAttribute(IBuildpathAttribute.FILTER_INCLUSIONS, this.filterPage.getInclusionPatterns());
- entryToEdit.setAttribute(IBuildpathAttribute.FILTER_EXCLUSIONS, this.filterPage.getExclusionPatterns());
+ entryToEdit.setAttribute(BuildpathAttribute.FILTER_INCLUSIONS, this.filterPage.getInclusionPatterns());
+ entryToEdit.setAttribute(BuildpathAttribute.FILTER_EXCLUSIONS, this.filterPage.getExclusionPatterns());
return true;
}
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/FilterWizardPage.java b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/FilterWizardPage.java
similarity index 90%
rename from ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/FilterWizardPage.java
rename to ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/FilterWizardPage.java
index 0d98103..a6d797c 100644
--- a/ltk/org.eclipse.statet.ltk.buildpaths.ui/src/org/eclipse/statet/ltk/buildpaths/ui/wizards/FilterWizardPage.java
+++ b/ltk/org.eclipse.statet.ltk.buildpath.ui/src/org/eclipse/statet/ltk/buildpath/ui/wizards/FilterWizardPage.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.buildpaths.ui.wizards;
+package org.eclipse.statet.ltk.buildpath.ui.wizards;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.dialogs.Dialog;
@@ -26,10 +26,10 @@
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.ExclusionInclusionComponent;
-import org.eclipse.statet.internal.ltk.buildpaths.ui.Messages;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathListElement;
-import org.eclipse.statet.ltk.buildpaths.ui.BuildpathsUIDescription;
+import org.eclipse.statet.internal.ltk.buildpath.ui.ExclusionInclusionComponent;
+import org.eclipse.statet.internal.ltk.buildpath.ui.Messages;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathListElement;
+import org.eclipse.statet.ltk.buildpath.ui.BuildpathsUIDescription;
public class FilterWizardPage extends WizardPage {
diff --git a/ltk/org.eclipse.statet.ltk.buildpaths.core/.project b/ltk/org.eclipse.statet.ltk.buildpaths.core/.project
deleted file mode 100644
index 76e896c..0000000
--- a/ltk/org.eclipse.statet.ltk.buildpaths.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.statet.ltk.buildpaths.core</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/ltk/org.eclipse.statet.ltk.core/META-INF/MANIFEST.MF b/ltk/org.eclipse.statet.ltk.core/META-INF/MANIFEST.MF
index ef2e0fc..72ecfde 100644
--- a/ltk/org.eclipse.statet.ltk.core/META-INF/MANIFEST.MF
+++ b/ltk/org.eclipse.statet.ltk.core/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@
Bundle-Vendor: Eclipse StatET
Bundle-Name: StatET LTK - Core (Incubation)
Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.statet.internal.ltk.core.LTKCorePlugin
+Bundle-Activator: org.eclipse.statet.internal.ltk.core.LtkCorePlugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.statet.ecommons.runtime.core;bundle-version="[4.2.0,4.3.0)",
org.eclipse.core.contenttype,
@@ -33,7 +33,8 @@
org.eclipse.statet.ltk.issues.core,
org.eclipse.statet.ltk.issues.core.impl,
org.eclipse.statet.ltk.model.core,
- org.eclipse.statet.ltk.model.core.elements,
+ org.eclipse.statet.ltk.model.core.build,
+ org.eclipse.statet.ltk.model.core.element,
org.eclipse.statet.ltk.model.core.impl,
org.eclipse.statet.ltk.model.core.util,
org.eclipse.statet.ltk.refactoring.core
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/BasicHeuristicTokenScanner.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/BasicHeuristicTokenScanner.java
index 4824adf..f70392f 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/BasicHeuristicTokenScanner.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/BasicHeuristicTokenScanner.java
@@ -420,7 +420,7 @@
protected StopCondition createFindPeerStopCondition(final int start, final char[] pair, final char escapeChar) {
- return (escapeChar == (char) 0) ?
+ return (escapeChar == (char)0) ?
new CharacterMatchCondition(pair) : new ExtCharacterMatchCondition(pair, escapeChar);
}
@@ -434,7 +434,7 @@
@Override
public int findClosingPeer(final int start, final char[] pair) {
- return findClosingPeer(start, pair, (char) 0);
+ return findClosingPeer(start, pair, (char)0);
}
@Override
@@ -477,7 +477,7 @@
start= this.document.getLength()-1;
}
try {
- final StopCondition cond= createFindPeerStopCondition(start, pair, (char) 0);
+ final StopCondition cond= createFindPeerStopCondition(start, pair, (char)0);
final int bound= createBackwardBound(start);
int depth= 1;
@@ -508,7 +508,7 @@
@Override
public int findOpeningPeer(int start, final char[] pair, final char escapeChar) {
Assert.isTrue(start < this.document.getLength());
- if (escapeChar == (char) 0) {
+ if (escapeChar == (char)0) {
return findOpeningPeer(start, pair);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/DocumentCodepointIterator.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/DocumentCodepointIterator.java
index debc8af..566fad7 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/DocumentCodepointIterator.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/DocumentCodepointIterator.java
@@ -93,7 +93,7 @@
catch (final BadLocationException e) {
this.fFragmentOffset= Integer.MIN_VALUE;
this.fFragment= null;
- return (char) EOF;
+ return (char)EOF;
}
}
return this.fFragment.charAt(offsetInFragment);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/IndentUtil.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/IndentUtil.java
index bef5941..0c6603a 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/IndentUtil.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/IndentUtil.java
@@ -882,7 +882,7 @@
}
private String createNoIndentationCharMessage(final int c) {
- return NLS.bind("No indentation char: ''{0}''.", ((char) c)); //$NON-NLS-1$
+ return NLS.bind("No indentation char: ''{0}''.", ((char)c)); //$NON-NLS-1$
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/MultiContentSectionCharPairMatcher.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/MultiContentSectionCharPairMatcher.java
index cffb430..1a5f277 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/MultiContentSectionCharPairMatcher.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/MultiContentSectionCharPairMatcher.java
@@ -79,7 +79,7 @@
public void dispose() {
for (final Object handler : this.handlers.values()) {
if (handler != NULL) {
- ((ICharPairMatcher) handler).dispose();
+ ((ICharPairMatcher)handler).dispose();
}
}
this.handlers.clear();
@@ -110,7 +110,7 @@
this.handlers.put(sectionType, handler);
}
}
- return (handler != NULL) ? (ICharPairMatcher) handler : null;
+ return (handler != NULL) ? (ICharPairMatcher)handler : null;
}
protected ICharPairMatcher createHandler(final String sectionType) {
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/Partitioner.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/Partitioner.java
index 3f52e6b..95ccf92 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/Partitioner.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/Partitioner.java
@@ -35,7 +35,7 @@
public void setStartPartitionType(final String partitionType) {
if (this.fScanner instanceof IPartitionScannerConfigExt) {
- ((IPartitionScannerConfigExt) this.fScanner).setStartPartitionType(partitionType);
+ ((IPartitionScannerConfigExt)this.fScanner).setStartPartitionType(partitionType);
}
else {
throw new UnsupportedOperationException();
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/PartitionerDocumentSetupParticipant.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/PartitionerDocumentSetupParticipant.java
index 210a2ba..e6f492b 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/PartitionerDocumentSetupParticipant.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ecommons/text/PartitionerDocumentSetupParticipant.java
@@ -50,10 +50,10 @@
Object synch;
if (document instanceof ISynchronizable) {
synchronized (document) {
- synch= ((ISynchronizable) document).getLockObject();
+ synch= ((ISynchronizable)document).getLockObject();
if (synch == null) {
synch= new Object();
- ((ISynchronizable) document).setLockObject(synch);
+ ((ISynchronizable)document).setLockObject(synch);
}
}
}
@@ -64,12 +64,12 @@
}
protected void doSetup(final IDocument document) {
- final IDocumentExtension3 extension3= (IDocumentExtension3) document;
+ final IDocumentExtension3 extension3= (IDocumentExtension3)document;
if (extension3.getDocumentPartitioner(getPartitioningId()) == null) {
// Setup the document scanner
final IDocumentPartitioner partitioner= createDocumentPartitioner();
if (partitioner instanceof IDocumentPartitionerExtension3) {
- ((IDocumentPartitionerExtension3) partitioner).connect(document, true);
+ ((IDocumentPartitionerExtension3)partitioner).connect(document, true);
}
else {
partitioner.connect(document);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/AdapterFactory.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/AdapterFactory.java
index 1a1a62d..ea2dae2 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/AdapterFactory.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/AdapterFactory.java
@@ -27,7 +27,11 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+@NonNullByDefault
public class AdapterFactory {
@@ -40,13 +44,13 @@
private static interface AdapterContribution {
- <T> T getAdapter(String modelTypeId, Class<T> adapterType);
+ <T> @Nullable T getAdapter(final String modelTypeId, final Class<T> adapterType);
}
private static class ClassContribution implements AdapterContribution {
- private IConfigurationElement configurationElement;
+ private @Nullable IConfigurationElement configurationElement;
public ClassContribution(final IConfigurationElement contributionElement) {
this.configurationElement= contributionElement;
@@ -54,15 +58,18 @@
@Override
@SuppressWarnings("unchecked")
- public <T> T getAdapter(final String modelTypeId, final Class<T> adapterType) {
- try {
- return (T) this.configurationElement.createExecutableExtension(CLASS_ATTRIBUTE_NAME);
- }
- catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, 0,
- NLS.bind("An error occurred when loading adapter class for model ''{0}''.", modelTypeId),
- e ));
- this.configurationElement= null;
+ public <T> @Nullable T getAdapter(final String modelTypeId, final Class<T> adapterType) {
+ final IConfigurationElement configurationElement= this.configurationElement;
+ if (configurationElement != null) {
+ try {
+ return (T) configurationElement.createExecutableExtension(CLASS_ATTRIBUTE_NAME);
+ }
+ catch (final CoreException e) {
+ this.configurationElement= null;
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, 0,
+ NLS.bind("An error occurred when loading adapter class for model ''{0}''.", modelTypeId),
+ e ));
+ }
}
return null;
}
@@ -71,31 +78,34 @@
private static class FactoryContribution implements AdapterContribution {
- private IConfigurationElement configurationElement;
- private IAdapterFactory factory;
+ private @Nullable IConfigurationElement configurationElement;
+ private @Nullable IAdapterFactory factory;
public FactoryContribution(final IConfigurationElement configurationElement) {
this.configurationElement= configurationElement;
}
@Override
- public <T> T getAdapter(final String modelTypeId, final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final String modelTypeId, final Class<T> adapterType) {
+ IAdapterFactory factory;
synchronized (this) {
- if (this.configurationElement != null) {
+ factory = this.factory;
+ final IConfigurationElement configurationElement;
+ if (factory == null && (configurationElement= this.configurationElement) != null) {
try {
- this.factory= (IAdapterFactory) this.configurationElement.createExecutableExtension(CLASS_ATTRIBUTE_NAME);
- this.configurationElement= null;
+ factory= (IAdapterFactory)configurationElement.createExecutableExtension(CLASS_ATTRIBUTE_NAME);
+ this.factory= factory;
}
catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, 0,
+ this.configurationElement= null;
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, 0,
NLS.bind("An error occurred when loading adapter factory for model ''{0}''.", modelTypeId),
e ));
- this.configurationElement= null;
}
}
}
- if (this.factory != null) {
- return this.factory.getAdapter(modelTypeId, adapterType);
+ if (factory != null) {
+ return factory.getAdapter(modelTypeId, adapterType);
}
return null;
}
@@ -146,7 +156,7 @@
}
}
- public <T> T get(final String modelTypeId, final Class<T> adapterType) {
+ public <T> @Nullable T get(final String modelTypeId, final Class<T> adapterType) {
AdapterContribution contribution;
synchronized (this.map) {
final Map<String, AdapterContribution> map= this.map.get(modelTypeId);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ExtContentTypeServices.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ExtContentTypeServices.java
index 986aaa3..2123094 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ExtContentTypeServices.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ExtContentTypeServices.java
@@ -87,7 +87,7 @@
private Map<String, String[]> primaryToSecondary;
private Map<String, String[]> secondaryToPrimary;
private Map<String, String> primaryToModel;
- private Map<String, ModelTypeDescriptor> modelDescriptors;
+ private Map<String, ModelTypeDescriptorImpl> modelDescriptors;
public ExtContentTypeServices() {
@@ -98,7 +98,7 @@
private void load() {
final IExtensionRegistry extensionRegistry= Platform.getExtensionRegistry();
- final Map<String, ModelTypeDescriptor> modelTypes= new HashMap<>();
+ final Map<String, ModelTypeDescriptorImpl> modelTypes= new HashMap<>();
final Map<String, Set<String>> primaryToSecondary= new HashMap<>();
final Map<String, Set<String>> secondaryToPrimary= new HashMap<>();
@@ -127,9 +127,9 @@
String id= element.getAttribute(CONFIG_ID_ATTRIBUTE_NAME);
if (id != null && !id.isEmpty()) {
id= id.intern();
- ModelTypeDescriptor descriptor= modelTypes.get(id);
+ ModelTypeDescriptorImpl descriptor= modelTypes.get(id);
if (descriptor == null) {
- descriptor= new ModelTypeDescriptor(id);
+ descriptor= new ModelTypeDescriptorImpl(id);
modelTypes.put(id, descriptor);
}
final IConfigurationElement[] children= element.getChildren();
@@ -167,9 +167,9 @@
this.modelDescriptors= modelTypes;
}
- private static void checkModelTypes(final Map<String, ModelTypeDescriptor> modelTypes) {
+ private static void checkModelTypes(final Map<String, ModelTypeDescriptorImpl> modelTypes) {
final List<String> temp= new ArrayList<>();
- for (final ModelTypeDescriptor descriptor : modelTypes.values()) {
+ for (final ModelTypeDescriptorImpl descriptor : modelTypes.values()) {
synchronized (descriptor) {
temp.clear();
for (final String sId : descriptor.secondaryTypeIds) {
@@ -217,12 +217,12 @@
@Override
- public ModelTypeDescriptor getModelType(final String modelTypeId) {
+ public ModelTypeDescriptorImpl getModelType(final String modelTypeId) {
return (modelTypeId != null) ? this.modelDescriptors.get(modelTypeId) : null;
}
@Override
- public ModelTypeDescriptor getModelTypeForContentType(final String contentTypeId) {
+ public ModelTypeDescriptorImpl getModelTypeForContentType(final String contentTypeId) {
return getModelType(this.primaryToModel.get(contentTypeId));
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/LTKCorePlugin.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/LtkCorePlugin.java
similarity index 82%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/LTKCorePlugin.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/LtkCorePlugin.java
index f45821e..6fb6767 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/LTKCorePlugin.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/LtkCorePlugin.java
@@ -25,27 +25,27 @@
import org.eclipse.statet.jcommons.lang.Disposable;
import org.eclipse.statet.ltk.core.IExtContentTypeManager;
-import org.eclipse.statet.ltk.model.core.ISourceUnitManager;
+import org.eclipse.statet.ltk.model.core.SourceUnitManager;
/**
* The activator class controls the plug-in life cycle
*/
-public final class LTKCorePlugin extends Plugin {
+public final class LtkCorePlugin extends Plugin {
public static final String BUNDLE_ID= "org.eclipse.statet.ltk.core"; //$NON-NLS-1$
- private static LTKCorePlugin instance;
- private static LTKCorePlugin gSafe;
+ private static LtkCorePlugin instance;
+ private static LtkCorePlugin gSafe;
/**
* Returns the shared plug-in instance
*
* @return the shared instance
*/
- public static LTKCorePlugin getInstance() {
+ public static LtkCorePlugin getInstance() {
return instance;
}
@@ -54,13 +54,13 @@
*
* @return the shared instance
*/
- public static LTKCorePlugin getSafe() {
+ public static LtkCorePlugin getSafe() {
return gSafe;
}
public static void log(final IStatus status) {
- final LTKCorePlugin plugin= getInstance();
+ final LtkCorePlugin plugin= getInstance();
if (plugin != null) {
plugin.getLog().log(status);
}
@@ -72,7 +72,7 @@
private final List<Disposable> disposables= new ArrayList<>();
private ExtContentTypeServices contentTypeServices;
- private SourceUnitManager sourceUnitManager;
+ private SourceUnitManagerImpl sourceUnitManagerImpl;
private AdapterFactory modelAdapterFactory;
@@ -80,14 +80,11 @@
/**
* The default constructor
*/
- public LTKCorePlugin() {
+ public LtkCorePlugin() {
instance= this;
gSafe= this;
}
- /**
- * {@inheritDoc}
- */
@Override
public void start(final BundleContext context) throws Exception {
super.start(context);
@@ -97,14 +94,11 @@
this.contentTypeServices= new ExtContentTypeServices();
addStoppingListener(this.contentTypeServices);
- this.sourceUnitManager= new SourceUnitManager();
- addStoppingListener(this.sourceUnitManager);
+ this.sourceUnitManagerImpl= new SourceUnitManagerImpl();
+ addStoppingListener(this.sourceUnitManagerImpl);
}
}
- /**
- * {@inheritDoc}
- */
@Override
public void stop(final BundleContext context) throws Exception {
try {
@@ -112,7 +106,7 @@
this.started= false;
this.contentTypeServices= null;
- this.sourceUnitManager= null;
+ this.sourceUnitManagerImpl= null;
}
try {
@@ -147,8 +141,8 @@
return this.contentTypeServices;
}
- public ISourceUnitManager getSourceUnitManager() {
- return this.sourceUnitManager;
+ public SourceUnitManager getSourceUnitManager() {
+ return this.sourceUnitManagerImpl;
}
public synchronized AdapterFactory getModelAdapterFactory() {
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ModelTypeDescriptor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ModelTypeDescriptorImpl.java
similarity index 62%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ModelTypeDescriptor.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ModelTypeDescriptorImpl.java
index aa831fd..6962a15 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ModelTypeDescriptor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/ModelTypeDescriptorImpl.java
@@ -15,22 +15,27 @@
package org.eclipse.statet.internal.ltk.core;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
-import org.eclipse.statet.ltk.core.IModelTypeDescriptor;
+import org.eclipse.statet.jcommons.collections.ImCollection;
+import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.model.core.ModelTypeDescriptor;
-public class ModelTypeDescriptor implements IModelTypeDescriptor {
+@NonNullByDefault
+public class ModelTypeDescriptorImpl implements ModelTypeDescriptor {
private final String id;
List<String> secondaryTypeIds= new ArrayList<>(1);
- List<String> checkedSecondaryTypeIds;
+ ImList<String> checkedSecondaryTypeIds;
- public ModelTypeDescriptor(final String id) {
+ public ModelTypeDescriptorImpl(final String id) {
this.id= id;
}
@@ -41,7 +46,7 @@
}
@Override
- public Collection<String> getSecondaryTypeIds() {
+ public ImCollection<String> getSecondaryTypeIds() {
return this.checkedSecondaryTypeIds;
}
@@ -52,12 +57,11 @@
}
@Override
- public boolean equals(final Object obj) {
- return (obj instanceof ModelTypeDescriptor
- && this.id == ((ModelTypeDescriptor) obj).id);
+ public boolean equals(final @Nullable Object obj) {
+ return (obj instanceof ModelTypeDescriptorImpl
+ && this.id == ((ModelTypeDescriptorImpl)obj).id);
}
-
@Override
public String toString() {
return this.id;
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/SourceUnitManager.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/SourceUnitManagerImpl.java
similarity index 75%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/SourceUnitManager.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/SourceUnitManagerImpl.java
index e06ded4..e3902a6 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/SourceUnitManager.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/internal/ltk/core/SourceUnitManagerImpl.java
@@ -41,30 +41,33 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.Disposable;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ltk.core.IExtContentTypeManager;
-import org.eclipse.statet.ltk.core.IModelTypeDescriptor;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.ISourceUnitFactory;
-import org.eclipse.statet.ltk.model.core.ISourceUnitManager;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.ModelTypeDescriptor;
+import org.eclipse.statet.ltk.model.core.SourceUnitFactory;
+import org.eclipse.statet.ltk.model.core.SourceUnitManager;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
-public class SourceUnitManager implements ISourceUnitManager, Disposable {
+@NonNullByDefault
+public class SourceUnitManagerImpl implements SourceUnitManager, Disposable {
private static final String CONFIG_MODELTYPE_ID_ATTRIBUTE_NAME= "modelTypeId"; //$NON-NLS-1$
private static final String CONFIG_CONTEXT_KEY_ATTRIBUTE_NAME= "contextKey"; //$NON-NLS-1$
- private static final class SuItem extends SoftReference<ISourceUnit> {
+ private static final class SuItem extends SoftReference<SourceUnit> {
private final String key;
- public SuItem(final String key, final ISourceUnit su, final ReferenceQueue<ISourceUnit> queue) {
- super(su);
+ public SuItem(final String key, final SourceUnit su, final ReferenceQueue<SourceUnit> queue) {
+ super(su, queue);
this.key= key;
}
@@ -73,10 +76,10 @@
}
public void dispose() {
- final ISourceUnit su= get();
+ final SourceUnit su= get();
if (su != null && su.isConnected()) {
- LTKCorePlugin.log(
- new Status(IStatus.WARNING, LTKCorePlugin.BUNDLE_ID, -1,
+ LtkCorePlugin.log(
+ new Status(IStatus.WARNING, LtkCorePlugin.BUNDLE_ID, -1,
NLS.bind("Source Unit ''{0}'' disposed but connected.", su.getId()), null));
}
clear();
@@ -87,11 +90,11 @@
private static class ContextItem {
private final WorkingContext context;
- private final ISourceUnitFactory factory;
+ private final SourceUnitFactory factory;
private final HashMap<String, SuItem> sus;
- private final ReferenceQueue<ISourceUnit> susToClean;
+ private final ReferenceQueue<SourceUnit> susToClean;
- public ContextItem(final WorkingContext context, final ISourceUnitFactory factory) {
+ public ContextItem(final WorkingContext context, final SourceUnitFactory factory) {
this.context= context;
this.factory= factory;
this.sus= new HashMap<>();
@@ -104,20 +107,20 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj instanceof ContextItem) {
- return ( ((ContextItem) obj).context == this.context);
+ return ( ((ContextItem)obj).context == this.context);
}
return false;
}
- public synchronized ISourceUnit getOpenSu(final Object from) {
+ public synchronized @Nullable SourceUnit getOpenSu(final Object from) {
final String id= this.factory.createId(from);
if (id != null) {
final SuItem suItem= this.sus.get(id);
if (suItem != null) {
- final ISourceUnit su= suItem.get();
+ final SourceUnit su= suItem.get();
if (su != null && !suItem.isEnqueued()) {
return su;
}
@@ -126,11 +129,11 @@
return null;
}
- public synchronized void appendOpenSus(final ArrayList<ISourceUnit> list) {
+ public synchronized void appendOpenSus(final ArrayList<SourceUnit> list) {
final Collection<SuItem> suItems= this.sus.values();
list.ensureCapacity(list.size() + suItems.size());
for (final SuItem suItem : suItems) {
- final ISourceUnit su= suItem.get();
+ final SourceUnit su= suItem.get();
if (su != null && !suItem.isEnqueued()) {
list.add(su);
}
@@ -151,7 +154,7 @@
this.modelTypeId= modelTypeId;
}
- public ContextItem getContextItem(final WorkingContext context, final boolean create) {
+ public @Nullable ContextItem getContextItem(final WorkingContext context, final boolean create) {
final ImList<ContextItem> contextItems= this.contextItems;
for (final ContextItem contextItem : contextItems) {
if (contextItem.context == context) {
@@ -184,14 +187,14 @@
}
}
if (matchingElement != null) {
- final ISourceUnitFactory factory= (ISourceUnitFactory) matchingElement.createExecutableExtension("unitFactory"); //$NON-NLS-1$
+ final SourceUnitFactory factory= (SourceUnitFactory)matchingElement.createExecutableExtension("unitFactory"); //$NON-NLS-1$
final ContextItem contextItem= new ContextItem(context, factory);
this.contextItems= ImCollections.addElement(contextItems, contextItem);
return contextItem;
}
}
catch (final Exception e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTK.BUNDLE_ID, 0,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, Ltk.BUNDLE_ID, 0,
"Error loading working context contributions", e )); //$NON-NLS-1$
}
}
@@ -199,7 +202,7 @@
return null;
}
- public ImList<ContextItem> getOpenContextItems(final WorkingContext context) {
+ public ImList<ContextItem> getOpenContextItems(final @Nullable WorkingContext context) {
final ImList<ContextItem> contextItems= this.contextItems;
if (context != null) {
for (final ContextItem contextItem : contextItems) {
@@ -220,9 +223,9 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
return (obj instanceof ModelItem
- && this.modelTypeId.equals(((ModelItem) obj).modelTypeId));
+ && this.modelTypeId.equals(((ModelItem)obj).modelTypeId));
}
}
@@ -272,10 +275,10 @@
private volatile ImList<ModelItem> modelItems= ImCollections.newList();
- private final IExtContentTypeManager contentManager= LTK.getExtContentTypeManager();
+ private final IExtContentTypeManager contentManager= Ltk.getExtContentTypeManager();
- public SourceUnitManager() {
+ public SourceUnitManagerImpl() {
this.cleanupJob.initialSchedule();
}
@@ -287,7 +290,7 @@
final List<ContextItem> contextItems= modelItem.contextItems;
for (final ContextItem contextItem : contextItems) {
SuItem suItem;
- while ((suItem= (SuItem) contextItem.susToClean.poll()) != null){
+ while ((suItem= (SuItem)contextItem.susToClean.poll()) != null){
synchronized (contextItem.sus) {
if (contextItem.sus.get(suItem.getKey()) == suItem) {
contextItem.sus.remove(suItem.getKey());
@@ -307,7 +310,7 @@
}
@Override
- public ISourceUnit getSourceUnit(final String modelTypeId, final WorkingContext context,
+ public @Nullable SourceUnit getSourceUnit(final String modelTypeId, final WorkingContext context,
final Object from, final boolean create,
final IProgressMonitor monitor) {
if (modelTypeId == null) {
@@ -317,20 +320,20 @@
throw new NullPointerException("context"); //$NON-NLS-1$
}
- return doGetSourceUnit(modelTypeId, context, from, null, create, monitor);
+ return doGetSourceUnit(modelTypeId, context, from, create, monitor);
}
@Override
- public ISourceUnit getSourceUnit(final WorkingContext context,
- final Object from, IContentType contentType, final boolean create,
+ public @Nullable SourceUnit getSourceUnit(final WorkingContext context,
+ final Object from, @Nullable IContentType contentType, final boolean create,
final IProgressMonitor monitor) {
if (context == null) {
throw new NullPointerException("context"); //$NON-NLS-1$
}
String modelTypeId;
- if (from instanceof ISourceUnit) {
- modelTypeId= ((ISourceUnit) from).getModelTypeId();
+ if (from instanceof SourceUnit) {
+ modelTypeId= ((SourceUnit)from).getModelTypeId();
}
else {
if (contentType == null) {
@@ -339,24 +342,24 @@
return null;
}
}
- final IModelTypeDescriptor modelType= this.contentManager.getModelTypeForContentType(contentType.getId());
+ final ModelTypeDescriptor modelType= this.contentManager.getModelTypeForContentType(contentType.getId());
if (modelType == null) {
return null;
}
modelTypeId= modelType.getId();
}
- return doGetSourceUnit(modelTypeId, context, from, contentType, create, monitor);
+ return doGetSourceUnit(modelTypeId, context, from, create, monitor);
}
- private ISourceUnit doGetSourceUnit(final String modelTypeId, final WorkingContext context,
- final Object from, final IContentType contentType, final boolean create,
+ private @Nullable SourceUnit doGetSourceUnit(final String modelTypeId, final WorkingContext context,
+ final Object from, final boolean create,
final IProgressMonitor monitor) {
- final ISourceUnit fromUnit= (from instanceof ISourceUnit) ? ((ISourceUnit) from) : null;
+ final SourceUnit fromUnit= (from instanceof SourceUnit) ? ((SourceUnit)from) : null;
final ModelItem modelItem= getModelItem(modelTypeId);
final ContextItem contextItem= modelItem.getContextItem(context, create);
- ISourceUnit su= null;
+ SourceUnit su= null;
if (contextItem != null) {
final String id= (fromUnit != null) ? fromUnit.getId() : contextItem.factory.createId(from);
if (id != null) {
@@ -372,7 +375,7 @@
if (create) {
su= contextItem.factory.createSourceUnit(id, from);
if (su == null || !su.getModelTypeId().equals(modelItem.modelTypeId)
- || (su.getElementType() & IModelElement.MASK_C1) != IModelElement.C1_SOURCE) {
+ || (su.getElementType() & LtkModelElement.MASK_C1) != LtkModelElement.C1_SOURCE) {
// TODO log
return null;
}
@@ -396,7 +399,7 @@
su.connect(monitor);
if (fromUnit != null) {
- fromUnit.disconnect(null);
+ fromUnit.disconnect(monitor);
}
return su;
@@ -407,14 +410,14 @@
}
@Override
- public List<ISourceUnit> getOpenSourceUnits(final String modelTypeId,
- final WorkingContext context) {
+ public List<SourceUnit> getOpenSourceUnits(final String modelTypeId,
+ final @Nullable WorkingContext context) {
final List<ModelItem> modelItems= getOpenModelItems(modelTypeId);
if (modelItems.isEmpty()) {
return Collections.emptyList();
}
- final ArrayList<ISourceUnit> list= new ArrayList<>();
+ final ArrayList<SourceUnit> list= new ArrayList<>();
for (int i= 0; i < modelItems.size(); i++) {
final ImList<ContextItem> contextItems= modelItems.get(i).getOpenContextItems(context);
@@ -430,14 +433,14 @@
}
@Override
- public List<ISourceUnit> getOpenSourceUnits(final List<String> modelTypeIds,
- final WorkingContext context) {
+ public List<SourceUnit> getOpenSourceUnits(final List<String> modelTypeIds,
+ final @Nullable WorkingContext context) {
final List<ModelItem> includedModelItems= getOpenModelItems(modelTypeIds);
if (includedModelItems.isEmpty()) {
return Collections.emptyList();
}
- final ArrayList<ISourceUnit> list= new ArrayList<>(4);
+ final ArrayList<SourceUnit> list= new ArrayList<>(4);
for (int i= 0; i < includedModelItems.size(); i++) {
final ImList<ContextItem> contextItems= this.modelItems.get(i).getOpenContextItems(context);
@@ -453,14 +456,14 @@
}
@Override
- public List<ISourceUnit> getOpenSourceUnits(final List<String> modelTypeIds,
- final WorkingContext context, final Object from) {
+ public List<SourceUnit> getOpenSourceUnits(final List<String> modelTypeIds,
+ final @Nullable WorkingContext context, final Object from) {
final List<ModelItem> includedModelItems= getOpenModelItems(modelTypeIds);
if (includedModelItems.isEmpty()) {
return Collections.emptyList();
}
- final ArrayList<ISourceUnit> list= new ArrayList<>(4);
+ final ArrayList<SourceUnit> list= new ArrayList<>(4);
for (int i= 0; i < includedModelItems.size(); i++) {
final ImList<ContextItem> contextItems= this.modelItems.get(i).getOpenContextItems(context);
@@ -469,7 +472,7 @@
}
for (final ContextItem contextItem : contextItems) {
- final ISourceUnit su= contextItem.getOpenSu(from);
+ final SourceUnit su= contextItem.getOpenSu(from);
if (su != null) {
list.add(su);
}
@@ -479,10 +482,10 @@
}
- private IContentType detectContentType(final Object from) {
+ private @Nullable IContentType detectContentType(final Object from) {
try {
if (from instanceof IFile) {
- final IFile file= (IFile) from;
+ final IFile file= (IFile)from;
final IContentDescription contentDescription= file.getContentDescription();
if (contentDescription != null) {
return contentDescription.getContentType();
@@ -492,7 +495,7 @@
}
}
else if (from instanceof IFileStore) {
- final IFileStore file= (IFileStore) from;
+ final IFileStore file= (IFileStore)from;
try (final InputStream stream= file.openInputStream(EFS.NONE, null)) {
final IContentDescription contentDescription= Platform.getContentTypeManager()
.getDescriptionFor(stream, file.getName(), IContentDescription.ALL);
@@ -509,7 +512,7 @@
}
}
catch (final CoreException | IOException | UnsupportedOperationException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTK.BUNDLE_ID, 0,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, Ltk.BUNDLE_ID, 0,
"An error occurred when trying to detect content type of " + from,
e ));
return null;
@@ -517,8 +520,6 @@
}
-
-
private ModelItem getModelItem(final String modelTypeId) {
final ImList<ModelItem> modelItems= this.modelItems;
for (final ModelItem modelItem : modelItems) {
@@ -536,7 +537,7 @@
}
}
- private List<ModelItem> getOpenModelItems(final String modelTypeId) {
+ private List<ModelItem> getOpenModelItems(final @Nullable String modelTypeId) {
final ImList<ModelItem> modelItems= this.modelItems;
if (modelTypeId != null) {
for (final ModelItem modelItem : modelItems) {
@@ -551,7 +552,7 @@
}
}
- private List<ModelItem> getOpenModelItems(final List<String> modelTypeIds) {
+ private List<ModelItem> getOpenModelItems(final @Nullable List<String> modelTypeIds) {
final ImList<ModelItem> modelItems= this.modelItems;
if (modelTypeIds != null) {
final List<ModelItem> matches= new ArrayList<>(modelTypeIds.size());
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/AstInfo.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/AstInfo.java
index 15faf9b..fad83c8 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/AstInfo.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/AstInfo.java
@@ -16,7 +16,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
/**
@@ -39,14 +39,14 @@
public static final int LEVEL_MODEL_DEFAULT= 0x4;
- private final ISourceModelStamp stamp;
+ private final SourceModelStamp stamp;
private final int level;
private final AstNode root;
- public AstInfo(final int level, final ISourceModelStamp stamp, final AstNode root) {
+ public AstInfo(final int level, final SourceModelStamp stamp, final AstNode root) {
this.level= level;
this.stamp= stamp;
this.root= root;
@@ -64,7 +64,7 @@
*
* @return the stamp
*/
- public ISourceModelStamp getStamp() {
+ public SourceModelStamp getStamp() {
return this.stamp;
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Asts.java
similarity index 97%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Asts.java
index 30855d6..dd689cd 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Asts.java
@@ -18,7 +18,7 @@
@NonNullByDefault
-public class Ast {
+public class Asts {
public static final AstNode getRoot(AstNode node) {
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/StatusDetail.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/StatusDetail.java
index ada1acf..f340068 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/StatusDetail.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/StatusDetail.java
@@ -31,7 +31,7 @@
public static final @Nullable StatusDetail getStatusDetail(final AstNode node) {
for (final Object aAttachment : node.getAttachments()) {
if (aAttachment instanceof StatusDetail) {
- return (StatusDetail) aAttachment;
+ return (StatusDetail)aAttachment;
}
}
return null;
@@ -58,7 +58,7 @@
return true;
}
if (obj instanceof StatusDetail) {
- final StatusDetail other= (StatusDetail) obj;
+ final StatusDetail other= (StatusDetail)obj;
return (equalsByOffsets(other)
&& Objects.equals(this.text, other.text) );
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/util/AstPrinter.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/util/AstPrinter.java
index 31814e1..dd7015e 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/util/AstPrinter.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/util/AstPrinter.java
@@ -55,7 +55,7 @@
node.accept(this);
}
catch (final InvocationTargetException e) {
- throw (IOException) e.getCause();
+ throw (IOException)e.getCause();
}
finally {
this.text= null;
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ElementName.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ElementName.java
index ea15bcf..c92f96e 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ElementName.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ElementName.java
@@ -19,11 +19,11 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
/**
- * Name of an element like an {@link IModelElement}.
+ * Name of an element like an {@link LtkModelElement}.
* <p>
* A element name consists of one or multiple segments. Each segment is of a special
* type (to differ different way to identify the element). The type is model type dependent.
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IExtContentTypeManager.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IExtContentTypeManager.java
index f760cc3..43b4e55 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IExtContentTypeManager.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IExtContentTypeManager.java
@@ -14,6 +14,9 @@
package org.eclipse.statet.ltk.core;
+import org.eclipse.statet.ltk.model.core.ModelTypeDescriptor;
+
+
/**
* Allows multiple content types in addition to the primary content type.
* <p>
@@ -28,8 +31,8 @@
boolean matchesActivatedContentType(String primaryContentTypeId, String secondaryContentTypeId, boolean self);
- IModelTypeDescriptor getModelType(String modelTypeId);
+ ModelTypeDescriptor getModelType(String modelTypeId);
- IModelTypeDescriptor getModelTypeForContentType(String contentTypeId);
+ ModelTypeDescriptor getModelTypeForContentType(String contentTypeId);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/LTKUtils.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/LTKUtils.java
deleted file mode 100644
index 32dc0b3..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/LTKUtils.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2009, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.core;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.statet.jcommons.text.core.TextRegion;
-
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-
-
-public class LTKUtils {
-
-
- public static IModelElement getModelElement(final Object element) {
- if (element instanceof IModelElement) {
- return (IModelElement) element;
- }
- if (element instanceof IAdaptable) {
- return ((IAdaptable) element).getAdapter(IModelElement.class);
- }
- return null;
- }
-
- public static ISourceUnit getSourceUnit(final IModelElement element) {
- if (element instanceof ISourceUnit) {
- return (ISourceUnit) element;
- }
- if (element instanceof ISourceElement) {
- return ((ISourceElement) element).getSourceUnit();
- }
- return null;
- }
-
- public static ISourceStructElement getCoveringSourceElement(final ISourceStructElement root, final TextRegion region) {
- return getCoveringSourceElement(root, region.getStartOffset(), region.getEndOffset());
- }
-
- public static ISourceStructElement getCoveringSourceElement(final ISourceStructElement root,
- final int startOffset, final int endOffset) {
- ISourceStructElement ok= root;
- CHECK: while (ok != null) {
- final List<? extends ISourceStructElement> children= ok.getSourceChildren(null);
- for (final ISourceStructElement child : children) {
- final TextRegion sourceRange= child.getSourceRange();
- final TextRegion docRange= child.getDocumentationRange();
- final int childOffset= (docRange != null) ?
- Math.min(sourceRange.getStartOffset(), docRange.getStartOffset()) :
- sourceRange.getStartOffset();
- if (startOffset >= childOffset) {
- final int childEnd= (docRange != null) ?
- Math.max(sourceRange.getEndOffset(), docRange.getEndOffset()) :
- sourceRange.getEndOffset();
- if ((startOffset < endOffset) ?
- (endOffset <= childEnd) : (endOffset < childEnd)) {
- ok= child;
- continue CHECK;
- }
- }
- else {
- break CHECK;
- }
- }
- break CHECK;
- }
- return ok;
- }
-
- public static int searchCoveringSourceElement(final List<? extends ISourceStructElement> elements,
- final int offset) {
- // binary search
- int low= 0;
- int high= elements.size() - 1;
- while (low <= high) {
- final int mid= (low + high) >> 1;
- final TextRegion region= elements.get(mid).getSourceRange();
-
- if (region.getEndOffset() < offset) {
- low= mid + 1;
- }
- else if (region.getStartOffset() > offset) {
- high= mid - 1;
- }
- else {
- return mid;
- }
- }
- return -(low + 1);
- }
-
- public static <T extends ISourceStructElement> T getCoveringSourceElement(final List<T> elements,
- final int offset) {
- final int idx= searchCoveringSourceElement(elements, offset);
- if (idx >= 0) {
- return elements.get(idx);
- }
- return null;
- }
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/LTK.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/Ltk.java
similarity index 69%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/LTK.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/Ltk.java
index 8441b56..abf6afa 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/LTK.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/Ltk.java
@@ -14,11 +14,13 @@
package org.eclipse.statet.ltk.core;
-import org.eclipse.statet.internal.ltk.core.LTKCorePlugin;
-import org.eclipse.statet.ltk.model.core.ISourceUnitManager;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+import org.eclipse.statet.internal.ltk.core.LtkCorePlugin;
-public class LTK {
+@NonNullByDefault
+public class Ltk {
public static final String BUNDLE_ID= "org.eclipse.statet.ltk.core"; //$NON-NLS-1$
@@ -29,16 +31,8 @@
public static final WorkingContext EDITOR_CONTEXT= new WorkingContext("editor.default"); //$NON-NLS-1$
- public static ISourceUnitManager getSourceUnitManager() {
- return LTKCorePlugin.getSafe().getSourceUnitManager();
- }
-
public static IExtContentTypeManager getExtContentTypeManager() {
- return LTKCorePlugin.getSafe().getContentTypeServices();
- }
-
- public static Object getModelAdapter(final String type, final Class<?> adapterType) {
- return LTKCorePlugin.getSafe().getModelAdapterFactory().get(type, adapterType);
+ return LtkCorePlugin.getSafe().getContentTypeServices();
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceContent.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceContent.java
index db94d9a..0f6478c 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceContent.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceContent.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.ltk.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.BasicTextRegion;
import org.eclipse.statet.jcommons.text.core.TextLineInformation;
import org.eclipse.statet.jcommons.text.core.TextRegion;
@@ -23,6 +25,7 @@
/**
* Source code with time stamp.
*/
+@NonNullByDefault
public class SourceContent extends BasicTextRegion implements TextRegion {
@@ -33,24 +36,24 @@
private final String text;
- private volatile TextLineInformation lines;
+ private volatile @Nullable TextLineInformation lines;
public SourceContent(final long stamp, final String text) {
- this(stamp, text, 0, null);
+ this(stamp, text, 0);
}
public SourceContent(final long stamp, final String text, final int startOffset) {
- this(stamp, text, startOffset, null);
+ super(startOffset, startOffset + text.length());
+ this.stamp= stamp;
+ this.text= text;
+ this.lines= null;
}
public SourceContent(final long stamp, final String text,
final int startOffset,
final TextLineInformation lines) {
super(startOffset, startOffset + text.length());
- if (text == null) {
- throw new NullPointerException("text"); //$NON-NLS-1$
- }
this.stamp= stamp;
this.text= text;
this.lines= lines;
@@ -80,14 +83,16 @@
// public final int getEndOffset() {
public final TextLineInformation getLines() {
- if (this.lines == null) {
+ TextLineInformation lines= this.lines;
+ if (lines == null) {
synchronized (LINES_CREATOR) {
- if (this.lines == null) {
- this.lines= LINES_CREATOR.create(this.text);
+ lines= this.lines;
+ if (lines == null) {
+ lines= LINES_CREATOR.create(this.text);
}
}
}
- return this.lines;
+ return lines;
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ISourceModelStamp.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceModelStamp.java
similarity index 81%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ISourceModelStamp.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceModelStamp.java
index 3cdaa85..18be2f2 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/ISourceModelStamp.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/SourceModelStamp.java
@@ -16,14 +16,17 @@
import org.eclipse.jface.text.IDocumentExtension4;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* The version of a source model like an AST.
*
- * Beside the {@link #getSourceStamp() source content stamp} it can e.g. consider the language
+ * Beside the {@link #getContentStamp() source content stamp} it can e.g. consider the language
* configuration used when parsing the source.
*/
-public interface ISourceModelStamp {
+@NonNullByDefault
+public interface SourceModelStamp {
/**
@@ -34,6 +37,6 @@
*
* @return the stamp
*/
- long getSourceStamp();
+ long getContentStamp();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/WorkingContext.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/WorkingContext.java
index e86a93b..21e30a0 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/WorkingContext.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/WorkingContext.java
@@ -14,15 +14,18 @@
package org.eclipse.statet.ltk.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Represents a context when working with LTK sources and models.
* <p>
* The objects can be used to identify the context (by identity). It has only the
* key attribute and doesn't provides further functions.</p>
*
- * @see LTK
+ * @see Ltk
* @noextend
*/
+@NonNullByDefault
public final class WorkingContext {
@@ -44,7 +47,6 @@
return this.key.hashCode();
}
-
@Override
public String toString() {
return this.key;
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/util/NameUtils.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/util/NameUtils.java
index 199870c..72c2521 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/util/NameUtils.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/util/NameUtils.java
@@ -20,7 +20,7 @@
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ltk.ast.core.AstNode;
-import org.eclipse.statet.ltk.model.core.elements.NameAccess;
+import org.eclipse.statet.ltk.model.core.element.NameAccess;
@NonNullByDefault
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ProblemRequestor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ProblemRequestor.java
index df2f8f0..5a1670f 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ProblemRequestor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ProblemRequestor.java
@@ -18,13 +18,13 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
* Accept problems by a problem checker.
*
- * {@link ISourceUnit#getProblemRequestor()}
+ * {@link SourceUnit#getProblemRequestor()}
*/
@NonNullByDefault
public interface ProblemRequestor {
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskPriority.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskPriority.java
index 0e363e5..796e841 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskPriority.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskPriority.java
@@ -16,7 +16,10 @@
import org.eclipse.core.resources.IMarker;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
public enum TaskPriority {
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ITaskTag.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskTag.java
similarity index 88%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ITaskTag.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskTag.java
index 3d979c1..8fe3e1c 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/ITaskTag.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskTag.java
@@ -14,10 +14,15 @@
package org.eclipse.statet.ltk.issues.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+
/**
*
*/
-public interface ITaskTag {
+@NonNullByDefault
+public interface TaskTag {
+
String getKeyword();
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskTag.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java
similarity index 83%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskTag.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java
index 76f0ac1..edf303c 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskTag.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.ltk.issues.core.impl;
-import org.eclipse.statet.ltk.issues.core.ITaskTag;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ltk.issues.core.TaskPriority;
+import org.eclipse.statet.ltk.issues.core.TaskTag;
-public class TaskTag implements ITaskTag {
+@NonNullByDefault
+public class BasicTaskTag implements TaskTag {
private final String keyword;
@@ -26,7 +29,7 @@
private final TaskPriority priority;
- public TaskTag(final String tag, final TaskPriority priority) {
+ public BasicTaskTag(final String tag, final TaskPriority priority) {
this.keyword= tag;
this.priority= priority;
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskMarkerHandler.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskMarkerHandler.java
index c330bc2..5ae4e66 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskMarkerHandler.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/TaskMarkerHandler.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.ltk.issues.core.impl;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -25,19 +27,22 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.TextLineInformation;
-import org.eclipse.statet.ltk.issues.core.ITaskTag;
import org.eclipse.statet.ltk.issues.core.TaskPriority;
+import org.eclipse.statet.ltk.issues.core.TaskTag;
+@NonNullByDefault
public class TaskMarkerHandler {
private final String markerId;
- private Pattern taskTagPattern;
- private Map<String, TaskPriority> taskTagMap;
+ private @Nullable Pattern taskTagPattern;
+ private final Map<String, TaskPriority> taskTagMap= new HashMap<>();
private IResource resource;
@@ -52,9 +57,11 @@
}
public void addTaskMarker(final String message, final int offset, int lineNumber, final String match)
- throws CoreException {
-
+ throws CoreException {
final TaskPriority prio= this.taskTagMap.get(match);
+ if (prio == null) {
+ return;
+ }
final IMarker marker= this.resource.createMarker(this.markerId);
@@ -75,19 +82,18 @@
this.resource.deleteMarkers(this.markerId, false, IResource.DEPTH_INFINITE);
}
- protected void initTaskPattern(final List<ITaskTag> taskTags) {
+ protected void initTaskPattern(final List<TaskTag> taskTags) {
this.taskTagPattern= null;
- this.taskTagMap= null;
+ this.taskTagMap.clear();
if (taskTags.isEmpty()) {
return;
}
- this.taskTagMap= new HashMap<>(taskTags.size());
final String separatorRegex= "[^\\p{L}\\p{N}]"; //$NON-NLS-1$
final StringBuilder regex= new StringBuilder(separatorRegex);
regex.append('(');
- for (final ITaskTag taskTag : taskTags) {
+ for (final TaskTag taskTag : taskTags) {
regex.append(Pattern.quote(taskTag.getKeyword()));
regex.append('|');
this.taskTagMap.put(taskTag.getKeyword(), taskTag.getPriority());
@@ -99,13 +105,16 @@
public void checkForTasks(final String content, final int offset, final TextLineInformation lines)
throws CoreException, BadLocationException {
- if (this.taskTagPattern != null) {
- final Matcher matcher= this.taskTagPattern.matcher(content);
- if (matcher.find()) {
- final int start= matcher.start(1);
- final String text= new String(content.substring(start));
- addTaskMarker(text, offset+start, lines.getLineOfOffset(offset)+1, matcher.group(1));
- }
+ final Pattern taskTagPattern= this.taskTagPattern;
+ if (taskTagPattern == null) {
+ return;
+ }
+ final Matcher matcher= taskTagPattern.matcher(content);
+ if (matcher.find()) {
+ final int start= matcher.start(1);
+ final String text= new String(content.substring(start));
+ addTaskMarker(text, offset + start, lines.getLineOfOffset(offset) + 1,
+ nonNullAssert(matcher.group(1)) );
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelElementDelta.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/DocumentModelProvider.java
similarity index 71%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelElementDelta.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/DocumentModelProvider.java
index fa3357b..2379a25 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelElementDelta.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/DocumentModelProvider.java
@@ -14,16 +14,16 @@
package org.eclipse.statet.ltk.model.core;
-import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
-public interface IModelElementDelta {
+@NonNullByDefault
+public interface DocumentModelProvider {
- IModelElement getModelElement();
-
- AstInfo getOldAst();
- AstInfo getNewAst();
+ @Nullable SourceUnit getWorkingCopy(final Object element);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedEvent.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedEvent.java
index a337475..eace5a6 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedEvent.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedEvent.java
@@ -15,6 +15,7 @@
package org.eclipse.statet.ltk.model.core;
import org.eclipse.statet.ltk.core.WorkingContext;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
/**
@@ -26,14 +27,14 @@
* Instances of this class are automatically created by the Java model.
* </p>
*
- * @see IElementChangedListener
+ * @see ElementChangedListener
* @see IJavaElementDelta
*/
public class ElementChangedEvent {
public final WorkingContext context;
- public final IModelElementDelta delta;
+ public final LtkModelElementDelta delta;
/**
@@ -42,7 +43,7 @@
* @param delta the Java element delta.
* @param type the type of delta (ADDED, REMOVED, CHANGED) this event contains
*/
- public ElementChangedEvent(final IModelElementDelta delta, final WorkingContext context) {
+ public ElementChangedEvent(final LtkModelElementDelta delta, final WorkingContext context) {
this.context= context;
this.delta= delta;
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IElementChangedListener.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedListener.java
similarity index 86%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IElementChangedListener.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedListener.java
index bf6ab48..25809a7 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IElementChangedListener.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementChangedListener.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.ltk.model.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* An element changed listener receives notification of changes to language elements
@@ -21,7 +23,8 @@
* <p>
* This interface may be implemented by clients.</p>
*/
-public interface IElementChangedListener {
+@NonNullByDefault
+public interface ElementChangedListener {
/**
@@ -30,6 +33,6 @@
*
* @param event the change event
*/
- public void elementChanged(ElementChangedEvent event);
+ void elementChanged(final ElementChangedEvent event);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementSet.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementSet.java
index 9955a3c..fe261b7 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementSet.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ElementSet.java
@@ -14,9 +14,10 @@
package org.eclipse.statet.ltk.model.core;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
import java.nio.channels.IllegalSelectorException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -29,23 +30,25 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.core.LTKUtils;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
+@NonNullByDefault
public class ElementSet {
- public static String[] getAffectedProjectNatures(final ElementSet set)
+ public static Set<String> getAffectedProjectNatures(final ElementSet set)
throws CoreException {
- return getAffectedProjectNatures(Collections.singletonList(set));
+ return getAffectedProjectNatures(ImCollections.newList(set));
}
- public static String[] getAffectedProjectNatures(final List<ElementSet> sets)
+ public static Set<String> getAffectedProjectNatures(final List<ElementSet> sets)
throws CoreException {
final Set<String> natureIds= new HashSet<>();
for (final ElementSet set : sets) {
@@ -57,7 +60,7 @@
}
}
}
- return natureIds.toArray(new String[natureIds.size()]);
+ return natureIds;
}
@@ -65,10 +68,10 @@
private static final int POST_PROCESS= 0x70000;
- protected ImList<Object> initialElements;
+ private final ImList<Object> initialElements;
- private List<IModelElement> modelElements;
- private List<IResource> resources;
+ private List<LtkModelElement<?>> modelElements= new ArrayList<>();
+ private List<IResource> resources= new ArrayList<>();
private int processState= 0;
private List<IResource> resourcesOwnedByElements;
@@ -79,12 +82,6 @@
this.initialElements= ImCollections.toList(elements);
init(elements);
- if (this.modelElements == null) {
- this.modelElements= new ArrayList<>(0);
- }
- if (this.resources == null) {
- this.resources= new ArrayList<>(0);
- }
if (countElements() == this.initialElements.size()) {
this.processState= POST_INIT;
}
@@ -105,18 +102,19 @@
}
protected void add(final Object o) {
- if (o instanceof IModelElement) {
- if (this.modelElements == null) {
- this.modelElements= new ArrayList<>();
- }
- this.modelElements.add((IModelElement) o);
+ if (o instanceof LtkModelElement) {
+ this.modelElements.add((LtkModelElement<?>)o);
return;
}
if (o instanceof IResource) {
+ final IResource resource = (IResource)o;
+ if (resource.getType() == IResource.ROOT) {
+ throw new IllegalArgumentException("ROOT");
+ }
if (this.resources == null) {
this.resources= new ArrayList<>();
}
- this.resources.add((IResource) o);
+ this.resources.add((IResource)o);
return;
}
}
@@ -142,7 +140,7 @@
return this.resources;
}
- public List<IModelElement> getModelElements() {
+ public List<LtkModelElement<?>> getModelElements() {
return this.modelElements;
}
@@ -154,8 +152,8 @@
return this.filesContainingElements;
}
- public IResource getOwningResource(final IModelElement element) {
- if ((element.getElementType() & IModelElement.MASK_C2) < IModelElement.C2_SOURCE_CHUNK) {
+ public @Nullable IResource getOwningResource(final LtkModelElement<?> element) {
+ if ((element.getElementType() & LtkModelElement.MASK_C2) < LtkModelElement.C2_SOURCE_CHUNK) {
IResource resource;
resource= element.getAdapter(IResource.class);
return resource;
@@ -163,15 +161,15 @@
return null;
}
- public IResource getResource(final IModelElement element) {
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
- if (su instanceof IWorkspaceSourceUnit) {
- return ((IWorkspaceSourceUnit) su).getResource();
+ public @Nullable IResource getResource(final LtkModelElement<?> element) {
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
+ if (su instanceof WorkspaceSourceUnit) {
+ return ((WorkspaceSourceUnit)su).getResource();
}
return null;
}
- public IProject getSingleProject() {
+ public @Nullable IProject getSingleProject() {
IProject project= null;
for (final IResource resource : this.resources) {
final IProject p= resource.getProject();
@@ -183,7 +181,7 @@
return null;
}
}
- for (final IModelElement element : this.modelElements) {
+ for (final LtkModelElement<?> element : this.modelElements) {
final IResource resource= getResource(element);
if (resource == null) {
continue;
@@ -203,12 +201,12 @@
public Set<IProject> getProjects() {
final Set<IProject> projects= new HashSet<>();
for (final IResource resource : this.resources) {
- projects.add(resource.getProject());
+ projects.add(nonNullAssert(resource.getProject()));
}
- for (final IModelElement element : this.modelElements) {
+ for (final LtkModelElement<?> element : this.modelElements) {
final IResource resource= getResource(element);
if (resource != null) {
- projects.add(resource.getProject());
+ projects.add(nonNullAssert(resource.getProject()));
}
}
return projects;
@@ -264,7 +262,7 @@
final Iterator<IResource> iter= this.resources.iterator();
ITER_RESOURCE : while (iter.hasNext()) {
final IResource subResource= iter.next();
- for (final IModelElement superElement : this.modelElements) {
+ for (final LtkModelElement<?> superElement : this.modelElements) {
if (isDescendantOf(subResource, superElement)) {
iter.remove();
continue ITER_RESOURCE;
@@ -274,10 +272,10 @@
}
private void removeModelElementsDescendantsOfModelElements() {
- final Iterator<IModelElement> iter= this.modelElements.iterator();
+ final Iterator<LtkModelElement<?>> iter= this.modelElements.iterator();
ITER_ELEMENT : while (iter.hasNext()) {
- final IModelElement subElement= iter.next();
- for (final IModelElement superElement : this.modelElements) {
+ final LtkModelElement<?> subElement= iter.next();
+ for (final LtkModelElement<?> superElement : this.modelElements) {
if (isDescendantOf(subElement, superElement)) {
iter.remove();
continue ITER_ELEMENT;
@@ -286,11 +284,11 @@
}
}
- public boolean includes(final IModelElement element) {
+ public boolean includes(final LtkModelElement<?> element) {
if (this.modelElements.contains(element)) {
return true;
}
- for (final IModelElement e : this.modelElements) {
+ for (final LtkModelElement<?> e : this.modelElements) {
if (isDescendantOf(element, e)) {
return true;
}
@@ -303,7 +301,7 @@
return !subResource.equals(superResource) && superResource.getFullPath().isPrefixOf(subResource.getFullPath());
}
- protected boolean isDescendantOf(final IResource subResource, final IModelElement superElement) {
+ protected boolean isDescendantOf(final IResource subResource, final LtkModelElement<?> superElement) {
final IResource superResource= getOwningResource(superElement);
if (superResource != null) {
return isDescendantOf(subResource, superResource);
@@ -311,12 +309,12 @@
return false;
}
- protected boolean isDescendantOf(final IModelElement subElement, final IModelElement superElement) {
+ protected boolean isDescendantOf(final LtkModelElement<?> subElement, final LtkModelElement<?> superElement) {
if (subElement.equals(superElement)
- || !(subElement instanceof ISourceStructElement)) {
+ || !(subElement instanceof SourceStructElement)) {
return false;
}
- ISourceStructElement parent= ((ISourceStructElement) subElement).getSourceParent();
+ SourceStructElement<?, ?> parent= ((SourceStructElement<?, ?>)subElement).getSourceParent();
while (parent != null){
if (parent.equals(superElement)) {
return true;
@@ -326,7 +324,7 @@
return false;
}
- protected void setModelElements(final List<IModelElement> newElements) {
+ protected void setModelElements(final List<LtkModelElement<?>> newElements) {
if (this.processState >= POST_PROCESS) {
throw new IllegalSelectorException();
}
@@ -340,7 +338,7 @@
if (this.processState < POST_PROCESS) {
this.resourcesOwnedByElements= new ArrayList<>(1);
this.filesContainingElements= new ArrayList<>(1);
- for (final IModelElement element : this.modelElements) {
+ for (final LtkModelElement<?> element : this.modelElements) {
IResource resource;
resource= getOwningResource(element);
if (resource != null) {
@@ -349,7 +347,7 @@
}
resource= getResource(element);
if (resource != null && resource.getType() == IResource.FILE) {
- this.filesContainingElements.add((IFile) resource);
+ this.filesContainingElements.add((IFile)resource);
continue;
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IDocumentModelProvider.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IDocumentModelProvider.java
deleted file mode 100644
index b6069e5..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IDocumentModelProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2007, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.model.core;
-
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-
-
-public interface IDocumentModelProvider {
-
-
- ISourceUnit getWorkingCopy(final Object element);
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/LtkModelUtils.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/LtkModelUtils.java
new file mode 100644
index 0000000..5078053
--- /dev/null
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/LtkModelUtils.java
@@ -0,0 +1,155 @@
+/*=============================================================================#
+ # Copyright (c) 2009, 2020 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.ltk.model.core;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+import org.eclipse.statet.jcommons.text.core.TextRegion;
+
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementFilter;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+
+
+@NonNullByDefault
+public final class LtkModelUtils {
+
+
+ public static @Nullable LtkModelElement<?> getModelElement(final @Nullable Object element) {
+ if (element instanceof LtkModelElement) {
+ return (LtkModelElement<?>)element;
+ }
+ if (element instanceof IAdaptable) {
+ return ((IAdaptable)element).getAdapter(LtkModelElement.class);
+ }
+ return null;
+ }
+
+ public static @Nullable SourceUnit getSourceUnit(final @Nullable LtkModelElement<?> element) {
+ if (element instanceof SourceUnit) {
+ return (SourceUnit)element;
+ }
+ if (element instanceof SourceElement) {
+ return ((SourceElement<?>)element).getSourceUnit();
+ }
+ return null;
+ }
+
+
+ public static final <T> boolean hasChildren(final List<? extends @NonNull T> children, final @Nullable LtkModelElementFilter<? super @NonNull T> filter) {
+ if (filter == null) {
+ return (!children.isEmpty());
+ }
+ else {
+ for (final T child : children) {
+ if (filter.include(child)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
+ public static final <T> List<? extends T> getChildren(final List<? extends @NonNull T> children, final @Nullable LtkModelElementFilter<? super @NonNull T> filter) {
+ if (filter == null) {
+ return children;
+ }
+ else {
+ final ArrayList<T> filtered= new ArrayList<>(children.size());
+ for (final T child : children) {
+ if (filter.include(child)) {
+ filtered.add(child);
+ }
+ }
+ return filtered;
+ }
+ }
+
+
+ public static @Nullable SourceStructElement getCoveringSourceElement(final SourceStructElement root,
+ final TextRegion region) {
+ return getCoveringSourceElement(root, region.getStartOffset(), region.getEndOffset());
+ }
+
+ public static @Nullable SourceStructElement getCoveringSourceElement(final SourceStructElement root,
+ final int startOffset, final int endOffset) {
+ SourceStructElement ok= root;
+ CHECK: while (ok != null) {
+ final List<? extends SourceStructElement> children= ok.getSourceChildren(null);
+ for (final SourceStructElement child : children) {
+ final TextRegion sourceRange= child.getSourceRange();
+ final TextRegion docRange= child.getDocumentationRange();
+ final int childOffset= (docRange != null) ?
+ Math.min(sourceRange.getStartOffset(), docRange.getStartOffset()) :
+ sourceRange.getStartOffset();
+ if (startOffset >= childOffset) {
+ final int childEnd= (docRange != null) ?
+ Math.max(sourceRange.getEndOffset(), docRange.getEndOffset()) :
+ sourceRange.getEndOffset();
+ if ((startOffset < endOffset) ?
+ (endOffset <= childEnd) : (endOffset < childEnd)) {
+ ok= child;
+ continue CHECK;
+ }
+ }
+ else {
+ break CHECK;
+ }
+ }
+ break CHECK;
+ }
+ return ok;
+ }
+
+ public static int searchCoveringSourceElement(final List<? extends SourceStructElement> elements,
+ final int offset) {
+ // binary search
+ int low= 0;
+ int high= elements.size() - 1;
+ while (low <= high) {
+ final int mid= (low + high) >> 1;
+ final TextRegion region= elements.get(mid).getSourceRange();
+
+ if (region.getEndOffset() < offset) {
+ low= mid + 1;
+ }
+ else if (region.getStartOffset() > offset) {
+ high= mid - 1;
+ }
+ else {
+ return mid;
+ }
+ }
+ return -(low + 1);
+ }
+
+ public static <T extends SourceStructElement> @Nullable T getCoveringSourceElement(final List<T> elements,
+ final int offset) {
+ final int idx= searchCoveringSourceElement(elements, offset);
+ if (idx >= 0) {
+ return elements.get(idx);
+ }
+ return null;
+ }
+
+}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/LtkModels.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/LtkModels.java
new file mode 100644
index 0000000..d22c855
--- /dev/null
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/LtkModels.java
@@ -0,0 +1,39 @@
+/*=============================================================================#
+ # Copyright (c) 2020 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.ltk.model.core;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.internal.ltk.core.LtkCorePlugin;
+
+
+@NonNullByDefault
+public class LtkModels {
+
+
+ public static SourceUnitManager getSourceUnitManager() {
+ return LtkCorePlugin.getSafe().getSourceUnitManager();
+ }
+
+ public static @Nullable Object getModelAdapter(final String modelTypeId, final Class<?> adapterType) {
+ return LtkCorePlugin.getSafe().getModelAdapterFactory().get(modelTypeId, adapterType);
+ }
+
+
+ private LtkModels() {
+ }
+
+}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelManager.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ModelManager.java
similarity index 65%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelManager.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ModelManager.java
index fbfc46c..f8ad38b 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelManager.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ModelManager.java
@@ -16,15 +16,18 @@
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.impl.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.build.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
*
*/
-public interface IModelManager {
+@NonNullByDefault
+public interface ModelManager {
int NONE= 0x00_00_00_00;
@@ -39,14 +42,15 @@
/**
* Refreshes the model info of all loaded source units in given context.
*/
- void refresh(WorkingContext context);
+ void refresh(final WorkingContext context);
- void addElementChangedListener(IElementChangedListener listener, WorkingContext context);
- void removeElementChangedListener(IElementChangedListener listener, WorkingContext context);
+ void addElementChangedListener(final ElementChangedListener listener, final WorkingContext context);
+ void removeElementChangedListener(final ElementChangedListener listener, final WorkingContext context);
- void registerDependentUnit(ISourceUnit su);
- void deregisterDependentUnit(ISourceUnit su);
+ void registerDependentUnit(final SourceUnit su);
+ void deregisterDependentUnit(final SourceUnit su);
- void reconcile(SourceUnitModelContainer<?, ?> adapter, int level, IProgressMonitor monitor);
+ void reconcile(final SourceUnitModelContainer<?, ?> adapter, final int level,
+ final IProgressMonitor monitor);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IModelTypeDescriptor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ModelTypeDescriptor.java
similarity index 72%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IModelTypeDescriptor.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ModelTypeDescriptor.java
index a3a1325..8e00b5e 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/core/IModelTypeDescriptor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ModelTypeDescriptor.java
@@ -12,16 +12,18 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.core;
+package org.eclipse.statet.ltk.model.core;
-import java.util.Collection;
+import org.eclipse.statet.jcommons.collections.ImCollection;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-public interface IModelTypeDescriptor {
+@NonNullByDefault
+public interface ModelTypeDescriptor {
String getId();
- Collection<String> getSecondaryTypeIds();
+ ImCollection<String> getSecondaryTypeIds();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ISourceUnitFactory.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceUnitFactory.java
similarity index 67%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ISourceUnitFactory.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceUnitFactory.java
index df4d344..386ea82 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ISourceUnitFactory.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceUnitFactory.java
@@ -14,18 +14,22 @@
package org.eclipse.statet.ltk.model.core;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * Interface for factories creation {@link ISourceUnit}.
+ * Interface for factories creation {@link SourceUnit}.
* Can be registered via extension point <code>org.eclipse.statet.ltk.workingContexts</code>
*/
-public interface ISourceUnitFactory {
+@NonNullByDefault
+public interface SourceUnitFactory {
- String createId(Object from);
+ @Nullable String createId(final Object from);
- ISourceUnit createSourceUnit(String id, Object from);
+ @Nullable SourceUnit createSourceUnit(final String id, final Object from);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ISourceUnitManager.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceUnitManager.java
similarity index 62%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ISourceUnitManager.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceUnitManager.java
index 903f738..d16e141 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/ISourceUnitManager.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceUnitManager.java
@@ -19,14 +19,18 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
* Manages shared instances of source units.
*/
-public interface ISourceUnitManager {
+@NonNullByDefault
+public interface SourceUnitManager {
/**
* Returns the source unit for the given object in the given LTK model and working context.
@@ -35,7 +39,7 @@
* the workspace context it is IFile, for the editor context an existing source unit
* (a working copy is created) or IFileStore (URI).
* The returned source unit is already connected. If it is a working copy of an existing source
- * unit (if <code>from</code> was instance of ISourceUnit), the parent is disconnected.
+ * unit (if <code>from</code> was instance of SourceUnit), the parent is disconnected.
*
* @param modelTypeId the model type id
* @param context the working context
@@ -44,15 +48,18 @@
* @param monitor
* @return the source unit or <code>null</code>
*/
- ISourceUnit getSourceUnit(String modelTypeId, WorkingContext context, Object from,
- boolean create, IProgressMonitor monitor);
+ @Nullable SourceUnit getSourceUnit(final String modelTypeId, final WorkingContext context, final Object from,
+ final boolean create, final IProgressMonitor monitor);
- ISourceUnit getSourceUnit(WorkingContext context, Object from, IContentType contentType,
- boolean create, IProgressMonitor monitor);
+ @Nullable SourceUnit getSourceUnit(final WorkingContext context, final Object from,
+ final @Nullable IContentType contentType,
+ final boolean create, final IProgressMonitor monitor);
- List<ISourceUnit> getOpenSourceUnits(String modelTypeId, WorkingContext context);
- List<ISourceUnit> getOpenSourceUnits(List<String> modelTypeIds, WorkingContext context);
- List<ISourceUnit> getOpenSourceUnits(List<String> modelTypeIds, WorkingContext context,
- Object from);
+ List<SourceUnit> getOpenSourceUnits(final List<String> modelTypeIds,
+ final @Nullable WorkingContext context);
+ List<SourceUnit> getOpenSourceUnits(final String modelTypeId,
+ final @Nullable WorkingContext context);
+ List<SourceUnit> getOpenSourceUnits(final List<String> modelTypeIds,
+ final @Nullable WorkingContext context, final Object from);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IEmbeddingReconcileItem.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/build/EmbeddingForeignReconcileTask.java
similarity index 63%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IEmbeddingReconcileItem.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/build/EmbeddingForeignReconcileTask.java
index aa9fa79..e021d6d 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IEmbeddingReconcileItem.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/build/EmbeddingForeignReconcileTask.java
@@ -12,20 +12,25 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.build;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ltk.ast.core.EmbeddingAstNode;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
-public interface IEmbeddingReconcileItem<N extends EmbeddingAstNode, E extends ISourceStructElement> {
+@NonNullByDefault
+public interface EmbeddingForeignReconcileTask<TAstNode extends EmbeddingAstNode, TElement extends SourceStructElement> {
String getForeignTypeId();
- N getAstNode();
+ TAstNode getAstNode();
- E getModelRefElement();
- void setModelTypeElement(ISourceStructElement element);
+ TElement getEmbeddingElement();
+
+ void setEmbeddedElement(final SourceStructElement element);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/build/SourceUnitModelContainer.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/build/SourceUnitModelContainer.java
new file mode 100644
index 0000000..6f7faae
--- /dev/null
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/build/SourceUnitModelContainer.java
@@ -0,0 +1,145 @@
+/*=============================================================================#
+ # Copyright (c) 2009, 2020 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.ltk.model.core.build;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.ast.core.AstInfo;
+import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.core.SourceContent;
+import org.eclipse.statet.ltk.core.WorkingContext;
+import org.eclipse.statet.ltk.issues.core.ProblemRequestor;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
+
+
+@NonNullByDefault
+public abstract class SourceUnitModelContainer<TSourceUnit extends SourceUnit, TModelInfo extends SourceUnitModelInfo> {
+
+
+ private final @Nullable WorkingContext mode;
+
+ private final TSourceUnit unit;
+
+ private @Nullable AstInfo astInfo;
+
+ private @Nullable TModelInfo modelInfo;
+
+
+ public SourceUnitModelContainer(final TSourceUnit unit) {
+ this.unit= unit;
+ this.mode= getMode(unit);
+ }
+
+
+ public abstract boolean isContainerFor(String modelTypeId);
+
+ public abstract Class<?> getAdapterClass();
+
+
+ protected @Nullable WorkingContext getMode(final TSourceUnit su) {
+ if (su instanceof WorkspaceSourceUnit) {
+ return su.getWorkingContext();
+ }
+ return null;
+ }
+
+ protected final @Nullable WorkingContext getMode() {
+ return this.mode;
+ }
+
+
+ public TSourceUnit getSourceUnit() {
+ return this.unit;
+ }
+
+ public SourceContent getParseContent(final IProgressMonitor monitor) {
+ return this.unit.getContent(monitor);
+ }
+
+ public @Nullable AstInfo getAstInfo(final boolean ensureSync, final IProgressMonitor monitor) {
+ if (ensureSync) {
+ getModelManager().reconcile(this, ModelManager.AST, monitor);
+ }
+ return this.astInfo;
+ }
+
+ public @Nullable TModelInfo getModelInfo(final int syncLevel, final IProgressMonitor monitor) {
+ if ((syncLevel & ModelManager.REFRESH) != 0) {
+ clear();
+ }
+ if ((syncLevel & 0xf) >= ModelManager.MODEL_FILE) {
+ final @Nullable TModelInfo currentModel= this.modelInfo;
+ if ((syncLevel & ModelManager.RECONCILE) != 0
+ || currentModel == null
+ || currentModel.getStamp().getContentStamp() == 0
+ || currentModel.getStamp().getContentStamp() != this.unit.getContentStamp(monitor) ) {
+ getModelManager().reconcile(this, syncLevel, monitor);
+ }
+ }
+ return this.modelInfo;
+ }
+
+ protected abstract ModelManager getModelManager();
+
+
+ public void clear() {
+ this.astInfo= null;
+ this.modelInfo= null;
+ }
+
+ public @Nullable AstInfo getCurrentAst() {
+ if (this.mode == Ltk.PERSISTENCE_CONTEXT) {
+ final @Nullable TModelInfo model= getCurrentModel();
+ if (model != null) {
+ return model.getAst();
+ }
+ return null;
+ }
+ return this.astInfo;
+ }
+
+ public void setAst(final AstInfo ast) {
+ if (this.mode == Ltk.PERSISTENCE_CONTEXT) {
+ return;
+ }
+ this.astInfo= ast;
+ }
+
+ public @Nullable TModelInfo getCurrentModel() {
+ return this.modelInfo;
+ }
+
+ public void setModel(final @Nullable TModelInfo modelInfo) {
+ final AstInfo astInfo;
+ if (modelInfo != null
+ && ((astInfo= this.astInfo) == null || astInfo.getStamp().equals(modelInfo.getAst().getStamp())) ) {
+ // otherwise, the ast is probably newer
+ setAst(modelInfo.getAst());
+ }
+ this.modelInfo= modelInfo;
+ }
+
+
+ public @Nullable ProblemRequestor createProblemRequestor() {
+ return null;
+ }
+
+}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/EmbeddingForeignElement.java
similarity index 62%
copy from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java
copy to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/EmbeddingForeignElement.java
index 30855d6..822ca03 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/EmbeddingForeignElement.java
@@ -1,5 +1,5 @@
/*=============================================================================#
- # Copyright (c) 2015, 2020 Stephan Wahlbrink and others.
+ # Copyright (c) 2009, 2020 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
@@ -12,22 +12,19 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.ast.core;
+package org.eclipse.statet.ltk.model.core.element;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
@NonNullByDefault
-public class Ast {
+public interface EmbeddingForeignElement<
+ TModelChild extends LtkModelElement<?>,
+ TSourceChild extends SourceStructElement<?, ?>>
+ extends SourceStructElement<TModelChild, TSourceChild> {
- public static final AstNode getRoot(AstNode node) {
- AstNode parent;
- while ((parent= node.getParent()) != null) {
- node= parent;
- }
- return node;
- }
-
+ @Nullable SourceStructElement<?, ?> getForeignElement();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IModelElement.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElement.java
similarity index 71%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IModelElement.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElement.java
index ef89722..af0159a 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IModelElement.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElement.java
@@ -12,26 +12,23 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.core.ElementName;
/**
- * Interface for all types of elements in the ltk model
+ * Interface for all types of model elements
*/
-public interface IModelElement extends IAdaptable {
-
-
- interface Filter {
-
- boolean include(IModelElement element);
-
- }
+@NonNullByDefault
+public interface LtkModelElement<TModelChild extends LtkModelElement<?>> extends IAdaptable {
static final int MASK_C1= 0xf00;
@@ -60,9 +57,9 @@
boolean exists();
boolean isReadOnly();
- IModelElement getModelParent();
- boolean hasModelChildren(Filter filter); // can also be used to visit children
- List<? extends IModelElement> getModelChildren(Filter filter);
+ @Nullable LtkModelElement<?> getModelParent();
+ boolean hasModelChildren(final @Nullable LtkModelElementFilter<? super TModelChild> filter); // can also be used to visit children
+ List<? extends TModelChild> getModelChildren(final @Nullable LtkModelElementFilter<? super TModelChild> filter);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelElementDelta.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElementDelta.java
similarity index 69%
copy from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelElementDelta.java
copy to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElementDelta.java
index fa3357b..9107c71 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/IModelElementDelta.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElementDelta.java
@@ -12,18 +12,21 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core;
+package org.eclipse.statet.ltk.model.core.element;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-public interface IModelElementDelta {
+@NonNullByDefault
+public interface LtkModelElementDelta {
- IModelElement getModelElement();
+ LtkModelElement<?> getModelElement();
- AstInfo getOldAst();
- AstInfo getNewAst();
+ @Nullable AstInfo getOldAst();
+ @Nullable AstInfo getNewAst();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElementFilter.java
similarity index 71%
copy from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java
copy to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElementFilter.java
index 30855d6..596a095 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/ast/core/Ast.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/LtkModelElementFilter.java
@@ -1,5 +1,5 @@
/*=============================================================================#
- # Copyright (c) 2015, 2020 Stephan Wahlbrink and others.
+ # Copyright (c) 2020 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
@@ -12,22 +12,15 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.ast.core;
+package org.eclipse.statet.ltk.model.core.element;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
@NonNullByDefault
-public class Ast {
+public interface LtkModelElementFilter<TModelElement extends LtkModelElement<?>> {
- public static final AstNode getRoot(AstNode node) {
- AstNode parent;
- while ((parent= node.getParent()) != null) {
- node= parent;
- }
- return node;
- }
-
+ boolean include(final TModelElement element);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/NameAccess.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/NameAccess.java
similarity index 85%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/NameAccess.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/NameAccess.java
index 8232414..4d41a4d 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/NameAccess.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/NameAccess.java
@@ -12,9 +12,10 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNull;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
@@ -24,7 +25,7 @@
@NonNullByDefault
public interface NameAccess<TAstNode extends AstNode,
- TNameAccess extends NameAccess<TAstNode, ? super TNameAccess>> extends ElementName {
+ TNameAccess extends NameAccess<TAstNode, @NonNull ? super TNameAccess>> extends ElementName {
TAstNode getNode();
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/NameAccessSet.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/NameAccessSet.java
similarity index 95%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/NameAccessSet.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/NameAccessSet.java
index d489aa7..5f86e57 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/NameAccessSet.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/NameAccessSet.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceDocumentRunnable.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceDocumentRunnable.java
similarity index 90%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceDocumentRunnable.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceDocumentRunnable.java
index 7bf113c..ab2435d 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/SourceDocumentRunnable.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceDocumentRunnable.java
@@ -12,21 +12,22 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core;
+package org.eclipse.statet.ltk.model.core.element;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.jface.text.AbstractDocument;
import org.eclipse.jface.text.DocumentRewriteSessionType;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
/**
* Runnable to execute a document operation in a special context.
*
- * @see ISourceUnit#syncExec(SourceDocumentRunnable)
+ * @see SourceUnit#syncExec(SourceDocumentRunnable)
*/
+@NonNullByDefault
public abstract class SourceDocumentRunnable {
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceElement.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceElement.java
similarity index 60%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceElement.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceElement.java
index 62df50a..1e3ddbb 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceElement.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceElement.java
@@ -12,23 +12,28 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.TextRegion;
/**
- * A element in a {@link ISourceUnit}.
+ * A element in a {@link SourceUnit}.
*/
-public interface ISourceElement extends IModelElement {
+@NonNullByDefault
+public interface SourceElement<TModelChild extends LtkModelElement<?>>
+ extends LtkModelElement<TModelChild> {
- ISourceUnit getSourceUnit();
+ SourceUnit getSourceUnit();
- TextRegion getNameSourceRange();
- TextRegion getSourceRange();
+ @Nullable TextRegion getNameSourceRange();
- TextRegion getDocumentationRange();
+ @Nullable TextRegion getSourceRange();
+
+ @Nullable TextRegion getDocumentationRange();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceStructElement.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceStructElement.java
new file mode 100644
index 0000000..a420561
--- /dev/null
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceStructElement.java
@@ -0,0 +1,41 @@
+/*=============================================================================#
+ # Copyright (c) 2008, 2020 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.ltk.model.core.element;
+
+import java.util.List;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+import org.eclipse.statet.jcommons.text.core.TextRegion;
+
+
+/**
+ * Represents Source structure instead of model structure
+ */
+@NonNullByDefault
+public interface SourceStructElement<
+ TModelChild extends LtkModelElement<?>,
+ TSourceChild extends SourceStructElement<?, ?>>
+ extends SourceElement<TModelChild> {
+
+
+ @Nullable SourceStructElement<?, ?> getSourceParent();
+ boolean hasSourceChildren(final @Nullable LtkModelElementFilter<? super TSourceChild> filter);
+ List<? extends TSourceChild> getSourceChildren(final @Nullable LtkModelElementFilter<? super TSourceChild> filter);
+
+ @Override
+ TextRegion getSourceRange();
+
+}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceUnit.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceUnit.java
similarity index 69%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceUnit.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceUnit.java
index 9d2bf53..8116ad9 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceUnit.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceUnit.java
@@ -12,9 +12,10 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
import java.lang.reflect.InvocationTargetException;
+import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -22,13 +23,16 @@
import org.eclipse.jface.text.IDocumentExtension4;
import org.eclipse.jface.text.ISynchronizable;
+import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.core.SourceContent;
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.ISourceUnitManager;
-import org.eclipse.statet.ltk.model.core.SourceDocumentRunnable;
+import org.eclipse.statet.ltk.model.core.SourceUnitManager;
/**
@@ -36,17 +40,18 @@
* <p>
* The typical example for a source unit is a text file.</p>
* <p>
- * Source units should be created using the {@link ISourceUnitManager}.
+ * Source units should be created using the {@link SourceUnitManager}.
* For the progress monitors of the methods the SubMonitor pattern is applied.</p>
*/
-public interface ISourceUnit extends IModelElement, IAdaptable {
+@NonNullByDefault
+public interface SourceUnit extends LtkModelElement<LtkModelElement<?>>, IAdaptable {
long UNKNOWN_MODIFICATION_STAMP= IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP;
WorkingContext getWorkingContext();
- ISourceUnit getUnderlyingUnit();
+ @Nullable SourceUnit getUnderlyingUnit();
/**
* If the content is synchronized with the underlying unit.
@@ -60,7 +65,13 @@
*
* @return the resource or <code>null</code> if without resource
*/
- Object getResource();
+ @Nullable Object getResource();
+
+
+ void connect(final IProgressMonitor monitor);
+ void disconnect(final IProgressMonitor monitor);
+ boolean isConnected();
+
/**
* Checks if the source is modifiable.
@@ -70,7 +81,7 @@
* @return <code>true</code> if not yet validated or validated and modifiable,
* otherwise <code>false</code> (finally not modifiable).
*/
- boolean checkState(boolean validate, IProgressMonitor monitor);
+ boolean checkState(final boolean validate, final IProgressMonitor monitor);
/**
* Access to the document with the content of this source unit
@@ -82,7 +93,7 @@
* @param monitor progress monitor (optional but recommended)
* @return the shared document
*/
- AbstractDocument getDocument(IProgressMonitor monitor);
+ AbstractDocument getDocument(final @Nullable IProgressMonitor monitor);
/**
* Returns the information about partitioning and content sections types of the document for
@@ -101,7 +112,7 @@
* @param monitor
* @return the current stamp
*/
- long getContentStamp(IProgressMonitor monitor);
+ long getContentStamp(final IProgressMonitor monitor);
/**
* Access to the current content of this source unit.
@@ -110,7 +121,7 @@
* @param monitor progress monitor (optional but recommended)
* @return the current content
*/
- SourceContent getContent(IProgressMonitor monitor);
+ SourceContent getContent(final IProgressMonitor monitor);
/**
* Runs {@link SourceDocumentRunnable} with checks (modification stamp) and
@@ -123,14 +134,27 @@
* @param runnable the runnable
* @throws InvocationTargetException forwarded from runnable
*/
- void syncExec(SourceDocumentRunnable runnable) throws InvocationTargetException;
+ void syncExec(final SourceDocumentRunnable runnable) throws InvocationTargetException;
- AstInfo getAstInfo(String type, boolean ensureSync, IProgressMonitor monitor);
+ @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
+ final IProgressMonitor monitor);
- ISourceUnitModelInfo getModelInfo(String type, int flags, IProgressMonitor monitor);
+ @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int flags,
+ final IProgressMonitor monitor);
- void connect(IProgressMonitor monitor);
- void disconnect(IProgressMonitor monitor);
- boolean isConnected();
+ @Override
+ default @Nullable LtkModelElement<?> getModelParent() {
+ return null;
+ }
+
+ @Override
+ default boolean hasModelChildren(final @Nullable LtkModelElementFilter<? super LtkModelElement<?>> filter) {
+ return false;
+ }
+
+ @Override
+ default List<? extends LtkModelElement<?>> getModelChildren(final @Nullable LtkModelElementFilter<? super LtkModelElement<?>> filter) {
+ return ImCollections.emptyList();
+ }
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceUnitModelInfo.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceUnitModelInfo.java
similarity index 75%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceUnitModelInfo.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceUnitModelInfo.java
index a133078..9c305ad 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceUnitModelInfo.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/SourceUnitModelInfo.java
@@ -12,18 +12,20 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
/**
* Container for model information of an source unit
*/
-public interface ISourceUnitModelInfo {
+@NonNullByDefault
+public interface SourceUnitModelInfo {
/**
@@ -31,7 +33,7 @@
*
* @return the stamp
*/
- ISourceModelStamp getStamp();
+ SourceModelStamp getStamp();
/**
* The AST used to create this info.
@@ -45,10 +47,10 @@
*
* @return the element
*/
- ISourceStructElement getSourceElement();
+ SourceStructElement<?, ?> getSourceElement();
- void addAttachment(Object data);
- void removeAttachment(Object data);
+ void addAttachment(final Object data);
+ void removeAttachment(final Object data);
ImList<Object> getAttachments();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IWorkspaceSourceUnit.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/WorkspaceSourceUnit.java
similarity index 85%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IWorkspaceSourceUnit.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/WorkspaceSourceUnit.java
index b5e22e1..5e147b3 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IWorkspaceSourceUnit.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/element/WorkspaceSourceUnit.java
@@ -12,7 +12,7 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.ltk.model.core.elements;
+package org.eclipse.statet.ltk.model.core.element;
import org.eclipse.core.resources.IResource;
@@ -26,7 +26,7 @@
* Source unit of a workspace resource
*/
@NonNullByDefault
-public interface IWorkspaceSourceUnit extends ISourceUnit {
+public interface WorkspaceSourceUnit extends SourceUnit {
/**
@@ -35,7 +35,7 @@
* @return the resource
*/
@Override
- public IResource getResource();
+ IResource getResource();
/**
* Returns a resolver for markers in the resource providing the position in the current
@@ -43,6 +43,6 @@
*
* @return the resolver if required
*/
- public @Nullable IMarkerPositionResolver getMarkerPositionResolver();
+ @Nullable IMarkerPositionResolver getMarkerPositionResolver();
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IEmbeddedForeignElement.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IEmbeddedForeignElement.java
deleted file mode 100644
index 6614257..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/IEmbeddedForeignElement.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2009, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.model.core.elements;
-
-
-public interface IEmbeddedForeignElement extends ISourceStructElement {
-
-
- ISourceStructElement getForeignElement();
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceStructElement.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceStructElement.java
deleted file mode 100644
index 04150e2..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/elements/ISourceStructElement.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2008, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.model.core.elements;
-
-import java.util.List;
-
-
-/**
- * Represents Source structure instead of model structure
- */
-public interface ISourceStructElement extends ISourceElement {
-
-
- ISourceStructElement getSourceParent();
- boolean hasSourceChildren(IModelElement.Filter filter);
- List<? extends ISourceStructElement> getSourceChildren(IModelElement.Filter filter);
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractEditorSourceUnitFactory.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractEditorSourceUnitFactory.java
index d195a4d..bff0a83 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractEditorSourceUnitFactory.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractEditorSourceUnitFactory.java
@@ -16,51 +16,55 @@
import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.ISourceFragment;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.model.core.ISourceUnitFactory;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.model.core.SourceUnitFactory;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
/**
- * Abstract factory for {@link LTK#EDITOR_CONTEXT}.
+ * Abstract factory for {@link Ltk#EDITOR_CONTEXT}.
*/
-public abstract class AbstractEditorSourceUnitFactory implements ISourceUnitFactory {
+@NonNullByDefault
+public abstract class AbstractEditorSourceUnitFactory implements SourceUnitFactory {
@Override
- public String createId(final Object from) {
+ public @Nullable String createId(final Object from) {
if (from instanceof IFileStore) {
- return AbstractFilePersistenceSourceUnitFactory.createResourceId(((IFileStore) from).toURI());
+ return AbstractFilePersistenceSourceUnitFactory.createResourceId(((IFileStore)from).toURI());
}
if (from instanceof ISourceFragment) {
- return ((ISourceFragment) from).getId();
+ return ((ISourceFragment)from).getId();
}
return null;
}
@Override
- public ISourceUnit createSourceUnit(final String id, final Object from) {
- if (from instanceof IWorkspaceSourceUnit) {
- return createSourceUnit(id, (IWorkspaceSourceUnit) from);
+ public @Nullable SourceUnit createSourceUnit(final String id, final Object from) {
+ if (from instanceof WorkspaceSourceUnit) {
+ return createSourceUnit(id, (WorkspaceSourceUnit)from);
}
if (from instanceof IFileStore) {
- return createSourceUnit(id, (IFileStore) from);
+ return createSourceUnit(id, (IFileStore)from);
}
if (from instanceof ISourceFragment) {
- return createSourceUnit(id, (ISourceFragment) from);
+ return createSourceUnit(id, (ISourceFragment)from);
}
return null;
}
- protected abstract ISourceUnit createSourceUnit(final String id, final IWorkspaceSourceUnit su);
+ protected abstract @Nullable SourceUnit createSourceUnit(final String id, final WorkspaceSourceUnit su);
- protected abstract ISourceUnit createSourceUnit(final String id, final IFileStore file);
+ protected abstract @Nullable SourceUnit createSourceUnit(final String id, final IFileStore file);
- protected ISourceUnit createSourceUnit(final String id, final ISourceFragment fragment) {
+ protected @Nullable SourceUnit createSourceUnit(final String id, final ISourceFragment fragment) {
return null;
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractFilePersistenceSourceUnitFactory.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractFilePersistenceSourceUnitFactory.java
index 0343bcb..b360b20 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractFilePersistenceSourceUnitFactory.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractFilePersistenceSourceUnitFactory.java
@@ -22,41 +22,37 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.model.core.ISourceUnitFactory;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.model.core.SourceUnitFactory;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * Abstract factory for {@link LTK#PERSISTENCE_CONTEXT}.
+ * Abstract factory for {@link Ltk#PERSISTENCE_CONTEXT}.
*/
-public abstract class AbstractFilePersistenceSourceUnitFactory implements ISourceUnitFactory {
+@NonNullByDefault
+public abstract class AbstractFilePersistenceSourceUnitFactory implements SourceUnitFactory {
private static final String IFILE_PREFIX= "platform:/resource"; //$NON-NLS-1$
public static String createResourceId(final IResource file) {
- if (file != null) {
- final IPath path= file.getFullPath();
- if (path != null) {
- return IFILE_PREFIX + path.toPortableString(); // eclipse-platform-resource
- }
- }
- return null;
+ final IPath path= file.getFullPath();
+ return IFILE_PREFIX + path.toPortableString(); // eclipse-platform-resource
}
public static String createResourceId(URI uri) {
- if (uri != null) {
- uri= uri.normalize();
- if (uri.getScheme() == null) {
- return "xxx:"+uri.toString(); //$NON-NLS-1$
- }
- else {
- return uri.toString();
- }
+ uri= uri.normalize();
+ if (uri.getScheme() == null) {
+ return "xxx:"+uri.toString(); //$NON-NLS-1$
}
- return null;
+ else {
+ return uri.toString();
+ }
}
@@ -65,12 +61,12 @@
@Override
- public String createId(final Object from) {
+ public @Nullable String createId(final Object from) {
if (from instanceof IFile) {
- return createResourceId((IFile) from);
+ return createResourceId((IFile)from);
}
if (from instanceof String) {
- final String s= (String) from;
+ final String s= (String)from;
if (s.startsWith(IFILE_PREFIX)) {
return s;
}
@@ -79,10 +75,10 @@
}
@Override
- public ISourceUnit createSourceUnit(final String id, final Object from) {
- IFile ifile;
+ public @Nullable SourceUnit createSourceUnit(final String id, final Object from) {
+ final IFile ifile;
if (from instanceof IFile) {
- ifile= (IFile) from;
+ ifile= (IFile)from;
}
else {
final IPath path= Path.fromPortableString(id.substring(IFILE_PREFIX.length()));
@@ -92,6 +88,6 @@
}
- protected abstract ISourceUnit createSourceUnit(final String id, final IFile file);
+ protected abstract SourceUnit createSourceUnit(final String id, final IFile file);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelEventJob.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelEventJob.java
index ca99a98..7e88c24 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelEventJob.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelEventJob.java
@@ -25,29 +25,32 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.internal.ltk.core.LTKCorePlugin;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.core.LTKUtils;
+import org.eclipse.statet.internal.ltk.core.LtkCorePlugin;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.core.WorkingContext;
import org.eclipse.statet.ltk.model.core.ElementChangedEvent;
-import org.eclipse.statet.ltk.model.core.IElementChangedListener;
-import org.eclipse.statet.ltk.model.core.IModelElementDelta;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.ElementChangedListener;
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
* Abstract model update event job
*/
-public abstract class AbstractModelEventJob<ElementType extends IModelElement, InfoType extends ISourceUnitModelInfo> extends Job {
+@NonNullByDefault
+public abstract class AbstractModelEventJob<TModelElement extends LtkModelElement<?>, InfoType extends SourceUnitModelInfo> extends Job {
private static class SafeRunnable implements ISafeRunnable {
final ElementChangedEvent event;
- IElementChangedListener listener;
+ ElementChangedListener listener;
public SafeRunnable(final ElementChangedEvent event) {
this.event= event;
@@ -60,7 +63,7 @@
@Override
public void handleException(final Throwable e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTK.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, Ltk.BUNDLE_ID, -1,
"An error occured while notifying an ElementChangedListener.", e )); //$NON-NLS-1$
}
@@ -68,17 +71,17 @@
protected class Task {
- private final ElementType element;
+ private final TModelElement element;
private InfoType oldInfo;
private InfoType newInfo;
- public Task(final ElementType element) {
+ public Task(final TModelElement element) {
this.element= element;
}
- public ElementType getElement() {
+ public TModelElement getElement() {
return this.element;
}
@@ -92,7 +95,7 @@
void run() {
- final IModelElementDelta delta= createDelta(this);
+ final LtkModelElementDelta delta= createDelta(this);
fireDelta(delta);
}
}
@@ -101,8 +104,8 @@
private final AbstractModelManager modelManager;
private final Object tasksLock= new Object();
- private final LinkedList<IModelElement> taskQueue= new LinkedList<>();
- private final HashMap<IModelElement, Task> taskDetail= new HashMap<>();
+ private final LinkedList<TModelElement> taskQueue= new LinkedList<>();
+ private final HashMap<TModelElement, Task> taskDetail= new HashMap<>();
private boolean working= false;
private boolean stop= false;
@@ -118,7 +121,7 @@
}
- public void addUpdate(final ElementType element,
+ public void addUpdate(final TModelElement element,
final InfoType oldModel, final InfoType newModel) {
synchronized (this.tasksLock) {
Task task= this.taskDetail.get(element);
@@ -139,7 +142,7 @@
}
}
- protected abstract IModelElementDelta createDelta(Task task);
+ protected abstract LtkModelElementDelta createDelta(Task task);
@Override
@@ -147,7 +150,7 @@
while (true) {
Task task;
synchronized (this.tasksLock) {
- final IModelElement element= (!this.taskQueue.isEmpty()) ? this.taskQueue.removeFirst() : null;
+ final @Nullable TModelElement element= (!this.taskQueue.isEmpty()) ? this.taskQueue.removeFirst() : null;
if (element == null || this.stop) {
this.working= false;
return Status.OK_STATUS;
@@ -159,7 +162,7 @@
task.run();
}
catch (final Throwable e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTK.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, Ltk.BUNDLE_ID, -1,
"An error occurred when firing model event for " + this.modelManager.getModelTypeId() + ".", //$NON-NLS-1$
e ));
}
@@ -174,16 +177,16 @@
}
}
- private void fireDelta(final IModelElementDelta delta) {
- final ISourceUnit su= LTKUtils.getSourceUnit(delta.getModelElement());
+ private void fireDelta(final LtkModelElementDelta delta) {
+ final SourceUnit su= LtkModelUtils.getSourceUnit(delta.getModelElement());
if (su == null) {
return;
}
final WorkingContext context= su.getWorkingContext();
final ElementChangedEvent event= new ElementChangedEvent(delta, context);
final SafeRunnable runnable= new SafeRunnable(event);
- final ImIdentityList<IElementChangedListener> listeners= this.modelManager.getElementChangedListeners(context);
- for (final IElementChangedListener listener : listeners) {
+ final ImIdentityList<ElementChangedListener> listeners= this.modelManager.getElementChangedListeners(context);
+ for (final ElementChangedListener listener : listeners) {
runnable.listener= listener;
SafeRunner.run(runnable);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelManager.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelManager.java
index 890e62a..1bc258f 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelManager.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractModelManager.java
@@ -24,22 +24,27 @@
import org.eclipse.statet.jcommons.collections.CopyOnWriteIdentityListSet;
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
+import org.eclipse.statet.jcommons.collections.ImSet;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.IElementChangedListener;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.ElementChangedListener;
+import org.eclipse.statet.ltk.model.core.LtkModels;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
-public abstract class AbstractModelManager implements IModelManager {
+@NonNullByDefault
+public abstract class AbstractModelManager implements ModelManager {
protected static class ContextItem {
public final WorkingContext context;
- public final CopyOnWriteIdentityListSet<IElementChangedListener> listeners= new CopyOnWriteIdentityListSet<>();
+ public final CopyOnWriteIdentityListSet<ElementChangedListener> listeners= new CopyOnWriteIdentityListSet<>();
protected ContextItem(final WorkingContext context) {
@@ -53,18 +58,18 @@
}
@Override
- public final boolean equals(final Object obj) {
+ public final boolean equals(final @Nullable Object obj) {
return (this == obj);
}
}
- private static final ImIdentityList<IElementChangedListener> NO_LISTENERS= ImCollections.emptyIdentityList();
+ private static final ImIdentityList<ElementChangedListener> NO_LISTENERS= ImCollections.emptyIdentityList();
private class RefreshJob extends Job {
- private final List<ISourceUnit> list;
+ private final List<SourceUnit> list;
private final int flags;
@@ -75,13 +80,13 @@
setSystem(true);
setPriority(DECORATE);
- this.list= LTK.getSourceUnitManager().getOpenSourceUnits(AbstractModelManager.this.typeId, context);
+ this.list= LtkModels.getSourceUnitManager().getOpenSourceUnits(AbstractModelManager.this.typeId, context);
this.flags= flags;
}
@Override
protected IStatus run(final IProgressMonitor monitor) {
- for (final ISourceUnit su : this.list) {
+ for (final SourceUnit su : this.list) {
su.getModelInfo(null, this.flags, monitor);
}
return Status.OK_STATUS;
@@ -97,6 +102,14 @@
public AbstractModelManager(final String typeId) {
this.typeId= typeId;
+
+ for (final WorkingContext context : getInitialContexts()) {
+ getContextItemCreate(context);
+ }
+ }
+
+ protected ImSet<WorkingContext> getInitialContexts() {
+ return ImCollections.newIdentitySet(Ltk.PERSISTENCE_CONTEXT, Ltk.EDITOR_CONTEXT);
}
@@ -104,7 +117,17 @@
return this.typeId;
}
- protected ContextItem getContextItem(final WorkingContext context, final boolean create) {
+ protected @Nullable ContextItem getContextItem(final WorkingContext context) {
+ final ImIdentityList<ContextItem> contextItems= this.contexts.toList();
+ for (final ContextItem contextItem : contextItems) {
+ if (contextItem.context == context) {
+ return contextItem;
+ }
+ }
+ return null;
+ }
+
+ protected ContextItem getContextItemCreate(final WorkingContext context) {
while (true) {
final ImIdentityList<ContextItem> contextItems= this.contexts.toList();
for (final ContextItem contextItem : contextItems) {
@@ -112,9 +135,6 @@
return contextItem;
}
}
- if (!create) {
- return null;
- }
synchronized (this.contexts) {
if (contextItems == this.contexts.toList()) {
final ContextItem item= doCreateContextItem(context);
@@ -130,23 +150,23 @@
}
@Override
- public void addElementChangedListener(final IElementChangedListener listener,
+ public void addElementChangedListener(final ElementChangedListener listener,
final WorkingContext context) {
- final ContextItem contextItem= getContextItem(context, true);
+ final ContextItem contextItem= getContextItemCreate(context);
contextItem.listeners.add(listener);
}
@Override
- public void removeElementChangedListener(final IElementChangedListener listener,
+ public void removeElementChangedListener(final ElementChangedListener listener,
final WorkingContext context) {
- final ContextItem contextItem= getContextItem(context, false);
+ final ContextItem contextItem= getContextItem(context);
if (contextItem != null) {
contextItem.listeners.remove(listener);
}
}
- protected ImIdentityList<IElementChangedListener> getElementChangedListeners(final WorkingContext context) {
- final ContextItem contextItem= getContextItem(context, false);
+ protected ImIdentityList<ElementChangedListener> getElementChangedListeners(final WorkingContext context) {
+ final ContextItem contextItem= getContextItem(context);
if (contextItem == null) {
return NO_LISTENERS;
}
@@ -162,11 +182,11 @@
}
@Override
- public void registerDependentUnit(final ISourceUnit su) {
+ public void registerDependentUnit(final SourceUnit su) {
}
@Override
- public void deregisterDependentUnit(final ISourceUnit su) {
+ public void deregisterDependentUnit(final SourceUnit su) {
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicNameAccessSet.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicNameAccessSet.java
index 4bb4d31..6cb21ab 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicNameAccessSet.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicNameAccessSet.java
@@ -24,8 +24,8 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.model.core.elements.NameAccess;
-import org.eclipse.statet.ltk.model.core.elements.NameAccessSet;
+import org.eclipse.statet.ltk.model.core.element.NameAccess;
+import org.eclipse.statet.ltk.model.core.element.NameAccessSet;
@NonNullByDefault
@@ -34,8 +34,9 @@
@SuppressWarnings({ "rawtypes", "unchecked" })
- private static final BasicNameAccessSet EMPTY_SET= new BasicNameAccessSet(Collections.EMPTY_MAP);
+ private static final BasicNameAccessSet EMPTY_SET= new BasicNameAccessSet<>(Collections.EMPTY_MAP);
+ @SuppressWarnings("unchecked")
public static final <TNameAccess extends NameAccess<?, TNameAccess>> BasicNameAccessSet<TNameAccess> emptySet() {
return EMPTY_SET;
}
@@ -68,7 +69,7 @@
@Override
public @Nullable ImList<TNameAccess> getAllInUnit(final String label) {
final NameAccessAccumulator<TNameAccess> shared= this.map.get(label);
- return (shared != null) ? (ImList<TNameAccess>) shared.getList() : null;
+ return (shared != null) ? (ImList<TNameAccess>)shared.getList() : null;
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/SourceModelStamp.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java
similarity index 66%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/SourceModelStamp.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java
index 5668b2f..5fe2550 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/SourceModelStamp.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java
@@ -14,22 +14,26 @@
package org.eclipse.statet.ltk.model.core.impl;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.core.SourceModelStamp;
-public class SourceModelStamp implements ISourceModelStamp {
+@NonNullByDefault
+public class BasicSourceModelStamp implements SourceModelStamp {
private final long sourceStamp;
- public SourceModelStamp(final long sourceStamp) {
+ public BasicSourceModelStamp(final long sourceStamp) {
this.sourceStamp= sourceStamp;
}
@Override
- public final long getSourceStamp() {
+ public final long getContentStamp() {
return this.sourceStamp;
}
@@ -40,10 +44,10 @@
}
@Override
- public boolean equals(final Object other) {
- return (other instanceof ISourceModelStamp
+ public boolean equals(final @Nullable Object other) {
+ return (other instanceof SourceModelStamp
&& getClass() == other.getClass()
- && this.sourceStamp == ((ISourceModelStamp) other).getSourceStamp() );
+ && this.sourceStamp == ((SourceModelStamp)other).getContentStamp() );
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractSourceModelInfo.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceUnitModelInfo.java
similarity index 78%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractSourceModelInfo.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceUnitModelInfo.java
index 8378c74..74b2c81 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/AbstractSourceModelInfo.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceUnitModelInfo.java
@@ -16,13 +16,15 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
-public abstract class AbstractSourceModelInfo implements ISourceUnitModelInfo {
+@NonNullByDefault
+public abstract class BasicSourceUnitModelInfo implements SourceUnitModelInfo {
private static final ImList<Object> NO_ATTACHMENTS= ImCollections.emptyList();
@@ -33,13 +35,13 @@
private volatile ImList<Object> attachments= NO_ATTACHMENTS;
- public AbstractSourceModelInfo(final AstInfo ast) {
+ public BasicSourceUnitModelInfo(final AstInfo ast) {
this.ast= ast;
}
@Override
- public ISourceModelStamp getStamp() {
+ public SourceModelStamp getStamp() {
return this.ast.getStamp();
}
@@ -55,7 +57,7 @@
}
@Override
- public void removeAttachment(final Object data) {
+ public synchronized void removeAttachment(final Object data) {
this.attachments= ImCollections.removeElement(this.attachments, data);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicWorkingBuffer.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicWorkingBuffer.java
new file mode 100644
index 0000000..f46dc91
--- /dev/null
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicWorkingBuffer.java
@@ -0,0 +1,344 @@
+/*=============================================================================#
+ # Copyright (c) 2007, 2020 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.ltk.model.core.impl;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.concurrent.atomic.AtomicReference;
+
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.LocationKind;
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.filesystem.URIUtil;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.jface.text.AbstractDocument;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentExtension4;
+import org.eclipse.jface.text.ISynchronizable;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.io.FileUtil;
+
+import org.eclipse.statet.internal.ltk.core.LtkCorePlugin;
+import org.eclipse.statet.ltk.core.SourceContent;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+
+
+/**
+ * Common implementation of {@link WorkingBuffer} for source units based on
+ * an {@link IFile} or an {@link IFileStore}.
+ */
+@NonNullByDefault
+public class BasicWorkingBuffer implements WorkingBuffer {
+
+ /** Mode for IFile (in workspace) */
+ protected static final byte IFILE= 1;
+ /** Mode for IFileStore (URI) */
+ protected static final byte FILESTORE= 2;
+
+ protected static final byte DOCUMENT= 1;
+
+
+ public static SourceContent createContentFromDocument(final IDocument doc) {
+ Object lock= null;
+ if (doc instanceof ISynchronizable) {
+ lock= ((ISynchronizable)doc).getLockObject();
+ }
+ if (lock != null && doc instanceof IDocumentExtension4) {
+ synchronized (lock) {
+ return new SourceContent(
+ ((IDocumentExtension4)doc).getModificationStamp(),
+ doc.get() );
+ }
+ }
+ else {
+ return new SourceContent(System.currentTimeMillis(), doc.get());
+ }
+ }
+
+
+ protected final SourceUnit unit;
+ private @Nullable AbstractDocument document;
+
+ /**
+ * Mode of this working buffer:<ul>
+ * <li>= 0 - uninitialized</li>
+ * <li>< 0 - invalid/no source found</li>
+ * <li>> 0 - mode constant {@link #IFILE}, {@link #FILESTORE}</li>
+ * </ul>
+ */
+ private byte mode;
+
+ public BasicWorkingBuffer(final SourceUnit unit) {
+ this.unit= unit;
+ }
+
+
+ /**
+ * Checks the mode of this working buffer
+ *
+ * @return <code>true</code> if valid mode, otherwise <code>false</code>
+ */
+ protected final byte detectResourceMode() {
+ if (this.mode == 0) {
+ final Object resource= this.unit.getResource();
+ if (resource instanceof IFile) {
+ this.mode= IFILE;
+ }
+ else if (resource instanceof IFileStore
+ && !((IFileStore)resource).fetchInfo().isDirectory() ) {
+ this.mode= FILESTORE;
+ }
+ if (this.mode == 0) {
+ this.mode= -1;
+ }
+ }
+ return this.mode;
+ }
+
+ protected final byte getResourceMode() {
+ return this.mode;
+ }
+
+ protected byte getContentMode() {
+ return 0;
+ }
+
+
+ @Override
+ public long getContentStamp(final IProgressMonitor monitor) {
+ { final AbstractDocument doc= this.document;
+ if (doc != null) {
+ return doc.getModificationStamp();
+ }
+ }
+ { final SourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
+ if (underlyingUnit != null) {
+ return underlyingUnit.getContentStamp(monitor);
+ }
+ }
+ if (detectResourceMode() == IFILE) {
+ final IFile resource= (IFile)this.unit.getResource();
+ if (resource != null) {
+ return resource.getModificationStamp();
+ }
+ }
+ return 0;
+ }
+
+ @Override
+ public synchronized @Nullable AbstractDocument getDocument() {
+ return this.document;
+ }
+
+ @Override
+ public synchronized AbstractDocument getDocument(final @Nullable IProgressMonitor monitor) {
+ AbstractDocument doc= this.document;
+ if (doc == null) {
+ final SubMonitor m= SubMonitor.convert(monitor);
+ doc= createDocument(m);
+ checkDocument(doc);
+ if ((getContentMode() & DOCUMENT) != 0) {
+ this.document= doc;
+ }
+ }
+ return doc;
+ }
+
+ @Override
+ public SourceContent getContent(final IProgressMonitor monitor) {
+ final SubMonitor m= SubMonitor.convert(monitor);
+ final IDocument doc= ((getContentMode() & DOCUMENT) != 0) ? getDocument(monitor) : getDocument();
+ if (doc != null) {
+ return createContentFromDocument(doc);
+ }
+ return createContent(m);
+ }
+
+ @Override
+ public void saveDocument(final IProgressMonitor monitor) {
+ }
+
+ @Override
+ public synchronized void releaseDocument(final IProgressMonitor monitor) {
+ this.document= null;
+ }
+
+ @Override
+ public boolean checkState(final boolean validate, final IProgressMonitor monitor) {
+ { final SourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
+ if (underlyingUnit != null) {
+ return underlyingUnit.checkState(validate, monitor);
+ }
+ }
+ switch (detectResourceMode()) {
+ case IFILE:
+ { final IFile resource= (IFile)this.unit.getResource();
+ if (!validate) {
+ return !resource.getResourceAttributes().isReadOnly();
+ }
+ else {
+ return resource.getWorkspace().validateEdit(new IFile[] { resource }, IWorkspace.VALIDATE_PROMPT).isOK();
+ }
+ }
+ case FILESTORE:
+ { final IFileStore store= (IFileStore)this.unit.getResource();
+ try {
+ return !store.fetchInfo(EFS.NONE, monitor).getAttribute(EFS.ATTRIBUTE_READ_ONLY);
+ }
+ catch (final CoreException e) {
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, 0,
+ "An error occurred when checking modifiable state of the file.", e));
+ return false;
+ }
+ }
+ default:
+ return false;
+ }
+ }
+
+
+ protected @Nullable AbstractDocument createDocument(final SubMonitor m) {
+ final IDocument fileDoc= createEmptyDocument();
+ if (!(fileDoc instanceof AbstractDocument)) {
+ return null;
+ }
+ final AbstractDocument document= (AbstractDocument)fileDoc;
+
+ final SourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
+ if (underlyingUnit != null) {
+ final SourceContent underlyingContent= underlyingUnit.getContent(m);
+// if (document instanceof IDocumentExtension4) {
+ document.set(underlyingContent.getText(), underlyingContent.getStamp());
+// }
+// else {
+// document.set(underlyingContent.text);
+// }
+ }
+ else {
+ final Object resource= this.unit.getResource();
+ if (resource instanceof IFile) {
+ loadDocumentFromFile((IFile)resource, document, m);
+ }
+ }
+
+ return document;
+ }
+
+ private IDocument createEmptyDocument() {
+ switch (detectResourceMode()) {
+ case IFILE:
+ return FileBuffers.getTextFileBufferManager().createEmptyDocument(
+ ((IFile)this.unit.getResource()).getFullPath(),
+ LocationKind.IFILE );
+ case FILESTORE:
+ return FileBuffers.getTextFileBufferManager().createEmptyDocument(
+ URIUtil.toPath(((IFileStore)this.unit.getResource()).toURI()),
+ LocationKind.LOCATION );
+ default:
+ return FileBuffers.getTextFileBufferManager().createEmptyDocument(null, null);
+ }
+ }
+
+ protected void checkDocument(final AbstractDocument document) {
+ if (document instanceof ISynchronizable) {
+ synchronized (document) {
+ if (((ISynchronizable)document).getLockObject() == null) {
+ ((ISynchronizable)document).setLockObject(new Object());
+ }
+ }
+ }
+ }
+
+ protected final void loadDocumentFromFile(final IFile file, final AbstractDocument document, final SubMonitor m) {
+ try {
+ FileUtil.getFileUtil(file).createReadTextFileOp(new FileUtil.ReaderAction() {
+ @Override
+ public void run(final BufferedReader reader, final IProgressMonitor monitor) throws IOException {
+ final StringBuilder buffer= new StringBuilder();
+ final char[] readBuffer= new char[2048];
+ int n;
+ while ((n= reader.read(readBuffer)) > 0) {
+ buffer.append(readBuffer, 0, n);
+ }
+// if (document instanceof IDocumentExtension4) {
+ document.set(buffer.toString(), file.getModificationStamp());
+// }
+// else {
+// document.set(buffer.toString());
+// }
+ }
+ }).doOperation(m);
+ }
+ catch (final OperationCanceledException e) {
+ }
+ catch (final CoreException e) {
+ LtkCorePlugin.log(e.getStatus());
+ }
+ }
+
+ protected SourceContent createContent(final SubMonitor m) {
+ final SourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
+ if (underlyingUnit != null) {
+ return underlyingUnit.getContent(m);
+ }
+ else {
+ final Object resource= this.unit.getResource();
+ final AtomicReference<SourceContent> content= new AtomicReference<>();
+ if (resource instanceof IFile) {
+ loadContentFromFile((IFile)resource, content, m);
+ }
+ return content.get();
+ }
+ }
+
+ protected final void loadContentFromFile(final IFile file, final AtomicReference<SourceContent> content, final SubMonitor m) {
+ try {
+ FileUtil.getFileUtil(file).createReadTextFileOp(new FileUtil.ReaderAction() {
+ @Override
+ public void run(final BufferedReader reader, final IProgressMonitor monitor) throws IOException {
+ final StringBuilder buffer= new StringBuilder();
+ final char[] readBuffer= new char[2048];
+ int n;
+ while ((n= reader.read(readBuffer)) >= 0) {
+ buffer.append(readBuffer, 0, n);
+ }
+ content.set(new SourceContent(file.getModificationStamp(), buffer.toString()));
+ }
+ }).doOperation(m);
+ }
+ catch (final OperationCanceledException e) {
+ }
+ catch (final CoreException e) {
+ LtkCorePlugin.log(e.getStatus());
+ }
+ }
+
+ @Override
+ public boolean isSynchronized() {
+ return false;
+ }
+
+}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/FileBufferWorkingBuffer.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/FileBufferWorkingBuffer.java
index d3cb986..d59cc6f 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/FileBufferWorkingBuffer.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/FileBufferWorkingBuffer.java
@@ -29,23 +29,27 @@
import org.eclipse.jface.text.AbstractDocument;
import org.eclipse.jface.text.IDocument;
-import org.eclipse.statet.internal.ltk.core.LTKCorePlugin;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.internal.ltk.core.LtkCorePlugin;
import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * WorkingBuffer using {@link ITextFileBuffer} and following JFace UI rules.
+ * BasicWorkingBuffer using {@link ITextFileBuffer} and following JFace UI rules.
* <p>
* Usually used for editors / the editor context.</p>
*/
-public class FileBufferWorkingBuffer extends WorkingBuffer {
+@NonNullByDefault
+public class FileBufferWorkingBuffer extends BasicWorkingBuffer {
- private ITextFileBuffer fileBuffer;
+ private @Nullable ITextFileBuffer fileBuffer;
- public FileBufferWorkingBuffer(final ISourceUnit unit) {
+ public FileBufferWorkingBuffer(final SourceUnit unit) {
super(unit);
}
@@ -56,29 +60,30 @@
}
@Override
- protected AbstractDocument createDocument(final SubMonitor m) {
+ protected @Nullable AbstractDocument createDocument(final SubMonitor m) {
+ ITextFileBuffer fileBuffer= null;
switch (detectResourceMode()) {
case IFILE:
- { final IPath path= ((IFile) this.unit.getResource()).getFullPath();
+ { final IPath path= ((IFile)this.unit.getResource()).getFullPath();
try {
FileBuffers.getTextFileBufferManager().connect(path, LocationKind.IFILE, m);
- this.fileBuffer= FileBuffers.getTextFileBufferManager().getTextFileBuffer(path, LocationKind.IFILE);
+ fileBuffer= FileBuffers.getTextFileBufferManager().getTextFileBuffer(path, LocationKind.IFILE);
}
catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, -1,
"An error occurred when allocating the document of the file buffer.",
e ));
}
break;
}
case FILESTORE:
- { final IFileStore store= (IFileStore) this.unit.getResource();
+ { final IFileStore store= (IFileStore)this.unit.getResource();
try {
FileBuffers.getTextFileBufferManager().connectFileStore(store, m);
- this.fileBuffer= FileBuffers.getTextFileBufferManager().getFileStoreTextFileBuffer(store);
+ fileBuffer= FileBuffers.getTextFileBufferManager().getFileStoreTextFileBuffer(store);
}
catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, -1,
"An error occurred when allocating the document of the file buffer.",
e ));
}
@@ -88,28 +93,30 @@
return super.createDocument(m);
}
- if (this.fileBuffer != null) {
- final IDocument fileDoc= this.fileBuffer.getDocument();
+ this.fileBuffer= fileBuffer;
+ if (fileBuffer != null) {
+ final IDocument fileDoc= fileBuffer.getDocument();
if (fileDoc instanceof AbstractDocument) {
- return (AbstractDocument) fileDoc;
+ return (AbstractDocument)fileDoc;
}
}
return null;
}
- private ITextFileBuffer getBuffer() {
+ private @Nullable ITextFileBuffer getBuffer() {
synchronized (this) {
- if (this.fileBuffer != null) {
- return this.fileBuffer;
+ final ITextFileBuffer fileBuffer= this.fileBuffer;
+ if (fileBuffer != null) {
+ return fileBuffer;
}
}
switch (getResourceMode()) {
case IFILE:
- { final IPath path= ((IFile) this.unit.getResource()).getFullPath();
+ { final IPath path= ((IFile)this.unit.getResource()).getFullPath();
return FileBuffers.getTextFileBufferManager().getTextFileBuffer(path, LocationKind.IFILE);
}
case FILESTORE:
- { final IFileStore store= (IFileStore) this.unit.getResource();
+ { final IFileStore store= (IFileStore)this.unit.getResource();
return FileBuffers.getTextFileBufferManager().getFileStoreTextFileBuffer(store);
}
default:
@@ -135,12 +142,12 @@
final SubMonitor m= SubMonitor.convert(monitor);
switch (getResourceMode()) {
case IFILE:
- { final IPath path= ((IFile) this.unit.getResource()).getFullPath();
+ { final IPath path= ((IFile)this.unit.getResource()).getFullPath();
FileBuffers.getTextFileBufferManager().disconnect(path, LocationKind.IFILE, m);
break;
}
case FILESTORE:
- { final IFileStore store= (IFileStore) this.unit.getResource();
+ { final IFileStore store= (IFileStore)this.unit.getResource();
FileBuffers.getTextFileBufferManager().disconnectFileStore(store, m);
break;
}
@@ -149,7 +156,7 @@
}
}
catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, -1,
"An error occurred when releasing the document of the file buffer.", e ));
}
finally {
@@ -174,7 +181,7 @@
buffer.validateState(monitor, IWorkspace.VALIDATE_PROMPT);
}
catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, -1,
"An error occurred when validating file buffer state.", e ));
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit.java
index 0ce9e99..b876144 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit.java
@@ -14,25 +14,28 @@
package org.eclipse.statet.ltk.model.core.impl;
-import java.util.Collections;
-import java.util.List;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.text.AbstractDocument;
import org.eclipse.jface.text.ISynchronizable;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.ISourceFragment;
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.core.ElementName;
import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
-public abstract class GenericFragmentSourceUnit implements ISourceUnit {
+@NonNullByDefault
+public abstract class GenericFragmentSourceUnit implements SourceUnit {
private final ElementName name;
@@ -40,16 +43,12 @@
private final ISourceFragment fragment;
private final long timestamp;
- private AbstractDocument document;
+ private @Nullable AbstractDocument document;
private int counter= 0;
public GenericFragmentSourceUnit(final String id, final ISourceFragment fragment) {
- if (fragment == null) {
- throw new NullPointerException("fragment"); //$NON-NLS-1$
- }
- this.fragment= fragment;
this.name= new ElementName() {
@Override
public int getType() {
@@ -64,16 +63,17 @@
return GenericFragmentSourceUnit.this.fragment.getName();
}
@Override
- public ElementName getNextSegment() {
+ public @Nullable ElementName getNextSegment() {
return null;
}
};
+ this.fragment= nonNullAssert(fragment);
this.timestamp= System.currentTimeMillis();
}
@Override
- public ISourceUnit getUnderlyingUnit() {
+ public @Nullable SourceUnit getUnderlyingUnit() {
return null;
}
@@ -95,32 +95,23 @@
* {@inheritDoc}
*
* A source unit of this type is usually of the type
- * {@link IModelElement#C2_SOURCE_CHUNK C2_SOURCE_CHUNK}.
+ * {@link LtkModelElement#C2_SOURCE_CHUNK C2_SOURCE_CHUNK}.
*/
@Override
public int getElementType() {
- return IModelElement.C2_SOURCE_CHUNK;
+ return LtkModelElement.C2_SOURCE_CHUNK;
}
- /**
- * {@inheritDoc}
- */
@Override
public ElementName getElementName() {
return this.name;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean exists() {
return this.counter > 0;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean isReadOnly() {
return true;
@@ -138,39 +129,32 @@
* A source unit of this type is usually doesn't have a resource/path.
*/
@Override
- public Object getResource() {
+ public @Nullable Object getResource() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
- public synchronized AbstractDocument getDocument(final IProgressMonitor monitor) {
- if (this.document == null) {
- this.document= this.fragment.getDocument();
+ public synchronized AbstractDocument getDocument(final @Nullable IProgressMonitor monitor) {
+ AbstractDocument document= this.document;
+ if (document == null) {
+ document= this.fragment.getDocument();
+ this.document= document;
}
- return this.document;
+ return document;
}
- /**
- * {@inheritDoc}
- */
@Override
public long getContentStamp(final IProgressMonitor monitor) {
return this.timestamp;
}
- /**
- * {@inheritDoc}
- */
@Override
public SourceContent getContent(final IProgressMonitor monitor) {
final AbstractDocument document= getDocument(monitor);
Object lockObject= null;
if (document instanceof ISynchronizable) {
- lockObject= ((ISynchronizable) document).getLockObject();
+ lockObject= ((ISynchronizable)document).getLockObject();
}
if (lockObject == null) {
lockObject= this.fragment;
@@ -180,63 +164,19 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
- @SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
- if (adapterType == ISourceFragment.class) {
- return (T) this.fragment;
- }
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
+ final IProgressMonitor monitor) {
+ return null;
+ }
+
+ @Override
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int syncLevel,
+ final IProgressMonitor monitor) {
return null;
}
- /**
- * {@inheritDoc}
- */
- @Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync, final IProgressMonitor monitor) {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int syncLevel, final IProgressMonitor monitor) {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public IModelElement getModelParent() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean hasModelChildren(final Filter filter) {
- return false;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public List<? extends IModelElement> getModelChildren(final Filter filter) {
- return Collections.EMPTY_LIST;
- }
-
-
- /**
- * {@inheritDoc}
- */
@Override
public synchronized final void connect(final IProgressMonitor monitor) {
this.counter++;
@@ -246,9 +186,6 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized final void disconnect(final IProgressMonitor monitor) {
this.counter--;
@@ -257,9 +194,6 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized boolean isConnected() {
return (this.counter > 0);
@@ -273,6 +207,16 @@
@Override
+ @SuppressWarnings("unchecked")
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
+ if (adapterType == ISourceFragment.class) {
+ return (T)this.fragment;
+ }
+ return null;
+ }
+
+
+ @Override
public String toString() {
return getModelTypeId() + '/' + getWorkingContext() + ": " + getId(); //$NON-NLS-1$
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit2.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit2.java
index 237c0ae..bfae543 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit2.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericFragmentSourceUnit2.java
@@ -16,11 +16,15 @@
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.ISourceFragment;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.build.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
@@ -29,13 +33,15 @@
* <li>Support for {@link SourceUnitModelContainer}</li>
* </ul>
*
- * @param <M>
+ * @param <TModelContainer>
*/
-public abstract class GenericFragmentSourceUnit2<M extends SourceUnitModelContainer<? extends ISourceUnit, ? extends ISourceUnitModelInfo>>
+@NonNullByDefault
+public abstract class GenericFragmentSourceUnit2<
+ TModelContainer extends SourceUnitModelContainer<? extends SourceUnit, ? extends SourceUnitModelInfo>>
extends GenericFragmentSourceUnit {
- private final M model;
+ private final TModelContainer model;
public GenericFragmentSourceUnit2(final String id, final ISourceFragment fragment) {
@@ -44,10 +50,10 @@
}
- protected abstract M createModelContainer();
+ protected abstract TModelContainer createModelContainer();
- protected final M getModelContainer() {
+ protected final TModelContainer getModelContainer() {
return this.model;
}
@@ -60,7 +66,7 @@
}
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync,
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
return this.model.getAstInfo(ensureSync, monitor);
@@ -69,7 +75,7 @@
}
@Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int flags,
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int flags,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
return this.model.getModelInfo(flags, monitor);
@@ -79,9 +85,9 @@
@Override
@SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
if (adapterType == this.model.getAdapterClass()) {
- return (T) this.model;
+ return (T)this.model;
}
return super.getAdapter(adapterType);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit.java
index c75bb9e..10a17a4 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit.java
@@ -15,8 +15,6 @@
package org.eclipse.statet.ltk.model.core.impl;
import java.lang.reflect.InvocationTargetException;
-import java.util.Collections;
-import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
@@ -24,50 +22,36 @@
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.text.AbstractDocument;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+import org.eclipse.statet.jcommons.lang.ObjectUtils;
+
import org.eclipse.statet.ecommons.text.IMarkerPositionResolver;
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.core.ElementName;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.core.SourceContent;
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.SourceDocumentRunnable;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceDocumentRunnable;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
/**
* Generic source unit for files in the Eclipse workspace (IFile).
*/
-public abstract class GenericResourceSourceUnit implements IWorkspaceSourceUnit {
+@NonNullByDefault
+public abstract class GenericResourceSourceUnit implements WorkspaceSourceUnit {
public static String createResourceId(final IResource file) {
return AbstractFilePersistenceSourceUnitFactory.createResourceId(file);
}
-
- private final String id;
- private final ElementName name;
-
- private final IFile file;
- private IWorkingBuffer buffer;
-
- private int counter= 0;
-
-
- public GenericResourceSourceUnit(final String id, final IFile file) {
- if (file == null) {
- throw new NullPointerException("file"); //$NON-NLS-1$
- }
- this.id= id;
- this.file= file;
- this.name= createElementName();
- }
-
- protected ElementName createElementName() {
+ protected static ElementName createResourceName(final IFile file) {
return new ElementName() {
@Override
public int getType() {
@@ -75,27 +59,48 @@
}
@Override
public String getDisplayName() {
- return GenericResourceSourceUnit.this.file.getName();
+ return file.getName();
}
@Override
public String getSegmentName() {
- return GenericResourceSourceUnit.this.file.getName();
+ return file.getName();
}
@Override
- public ElementName getNextSegment() {
+ public @Nullable ElementName getNextSegment() {
return null;
}
};
}
+ private final String id;
+ private final ElementName name;
+
+ private final IFile file;
+ private WorkingBuffer buffer;
+
+ private int counter= 0;
+
+
+ @SuppressWarnings("null")
+ public GenericResourceSourceUnit(final String id, final ElementName name, final IFile file) {
+ this.id= id;
+ this.name= name;
+ this.file= ObjectUtils.nonNullAssert(file);
+ }
+
+ public GenericResourceSourceUnit(final String id, final IFile file) {
+ this(id, createResourceName(file), file);
+ }
+
+
/**
* {@inheritDoc}
*
* A source unit of this type usually doesn't have a underlying unit.
*/
@Override
- public ISourceUnit getUnderlyingUnit() {
+ public @Nullable SourceUnit getUnderlyingUnit() {
return null;
}
@@ -104,9 +109,6 @@
return true;
}
- /**
- * {@inheritDoc}
- */
@Override
public final String getId() {
return this.id;
@@ -116,35 +118,29 @@
* {@inheritDoc}
*
* A source unit of this type usually belongs to the
- * {@link LTK#PERSISTENCE_CONTEXT}.
+ * {@link Ltk#PERSISTENCE_CONTEXT}.
*/
@Override
public WorkingContext getWorkingContext() {
- return LTK.PERSISTENCE_CONTEXT;
+ return Ltk.PERSISTENCE_CONTEXT;
}
/**
* {@inheritDoc}
*
* A source unit of this type is usually of the type
- * {@link IModelElement#C2_SOURCE_FILE C2_SOURCE_FILE}.
+ * {@link LtkModelElement#C2_SOURCE_FILE C2_SOURCE_FILE}.
*/
@Override
public int getElementType() {
return C2_SOURCE_FILE;
}
- /**
- * {@inheritDoc}
- */
@Override
public final ElementName getElementName() {
return this.name;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean exists() {
return true;
@@ -162,131 +158,77 @@
}
- /**
- * {@inheritDoc}
- */
@Override
public final IResource getResource() {
return this.file;
}
@Override
- public IMarkerPositionResolver getMarkerPositionResolver() {
+ public @Nullable IMarkerPositionResolver getMarkerPositionResolver() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean checkState(final boolean validate, final IProgressMonitor monitor) {
return this.buffer.checkState(validate, monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
- public AbstractDocument getDocument(final IProgressMonitor monitor) {
+ public AbstractDocument getDocument(final @Nullable IProgressMonitor monitor) {
return this.buffer.getDocument(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
public long getContentStamp(final IProgressMonitor monitor) {
return this.buffer.getContentStamp(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
public SourceContent getContent(final IProgressMonitor monitor) {
return this.buffer.getContent(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
public void syncExec(final SourceDocumentRunnable runnable) throws InvocationTargetException {
throw new UnsupportedOperationException();
}
- /**
- * {@inheritDoc}
- */
@Override
@SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
if (adapterType.equals(IResource.class)) {
- return (T) getResource();
+ return (T)getResource();
}
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync, final IProgressMonitor monitor) {
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
+ final IProgressMonitor monitor) {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int syncLevel, final IProgressMonitor monitor) {
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int syncLevel,
+ final IProgressMonitor monitor) {
return null;
}
- /**
- * {@inheritDoc}
- */
- @Override
- public IModelElement getModelParent() {
- return null; // directory
- }
- /**
- * {@inheritDoc}
- */
@Override
- public boolean hasModelChildren(final Filter filter) {
- return false;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public List<? extends IModelElement> getModelChildren(final Filter filter) {
- return Collections.EMPTY_LIST;
- }
-
-
- /**
- * {@inheritDoc}
- */
- @Override
+ @SuppressWarnings("unused")
public synchronized final void connect(final IProgressMonitor monitor) {
this.counter++;
if (this.counter == 1) {
if (this.buffer == null) {
- this.buffer= new WorkingBuffer(this);
+ this.buffer= new BasicWorkingBuffer(this);
}
register();
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized final void disconnect(final IProgressMonitor monitor) {
this.counter--;
@@ -297,9 +239,6 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized boolean isConnected() {
return (this.counter > 0);
@@ -318,15 +257,18 @@
}
@Override
- public boolean equals(final Object obj) {
- if (!(obj instanceof ISourceUnit)) {
- return false;
+ public boolean equals(final @Nullable Object obj) {
+ if (this == obj) {
+ return true;
}
- final ISourceUnit other= (ISourceUnit) obj;
- return (getElementType() == other.getElementType()
- && getWorkingContext() == other.getWorkingContext()
- && getId().equals(other.getId())
- && getModelTypeId().equals(other.getModelTypeId()) );
+ if (obj instanceof SourceUnit) {
+ final SourceUnit other= (SourceUnit)obj;
+ return (getElementType() == other.getElementType()
+ && getWorkingContext() == other.getWorkingContext()
+ && getId().equals(other.getId())
+ && getModelTypeId().equals(other.getModelTypeId()) );
+ }
+ return false;
}
@Override
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit2.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit2.java
index 8cdf086..5bf72bf 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit2.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericResourceSourceUnit2.java
@@ -17,10 +17,14 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.build.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
@@ -29,13 +33,15 @@
* <li>Support for {@link SourceUnitModelContainer}</li>
* </ul>
*
- * @param <M>
+ * @param <TModelContainer>
*/
-public abstract class GenericResourceSourceUnit2<M extends SourceUnitModelContainer<? extends ISourceUnit, ? extends ISourceUnitModelInfo>>
+@NonNullByDefault
+public abstract class GenericResourceSourceUnit2<
+ TModelContainer extends SourceUnitModelContainer<? extends SourceUnit, ? extends SourceUnitModelInfo>>
extends GenericResourceSourceUnit {
- private final M model;
+ private final TModelContainer model;
public GenericResourceSourceUnit2(final String id, final IFile file) {
@@ -45,9 +51,9 @@
}
- protected abstract M createModelContainer();
+ protected abstract TModelContainer createModelContainer();
- protected final M getModelContainer() {
+ protected final TModelContainer getModelContainer() {
return this.model;
}
@@ -60,12 +66,12 @@
}
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync,
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
final AstInfo ast= this.model.getCurrentAst();
final long stamp= getResource().getModificationStamp();
- if (ast != null && ast.getStamp().getSourceStamp() == stamp) {
+ if (ast != null && ast.getStamp().getContentStamp() == stamp) {
return ast;
}
// TODO
@@ -74,11 +80,11 @@
}
@Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int flags,
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int flags,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
- if ((flags & IModelManager.RECONCILE) != 0) {
- if ((flags & IModelManager.REFRESH) != 0) {
+ if ((flags & ModelManager.RECONCILE) != 0) {
+ if ((flags & ModelManager.REFRESH) != 0) {
this.model.clear();
}
// trigger rebuild?
@@ -92,9 +98,9 @@
@Override
@SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
if (adapterType == this.model.getAdapterClass()) {
- return (T) this.model;
+ return (T)this.model;
}
return super.getAdapter(adapterType);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy.java
index 0e9feb9..9cbf389 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy.java
@@ -14,31 +14,31 @@
package org.eclipse.statet.ltk.model.core.impl;
-import java.util.Collections;
-import java.util.List;
-
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.text.AbstractDocument;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.core.ElementName;
import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
* Generic source unit for working copies based on the same unit in the underlying context
*/
-public abstract class GenericSourceUnitWorkingCopy implements ISourceUnit {
+@NonNullByDefault
+public abstract class GenericSourceUnitWorkingCopy implements SourceUnit {
- private final ISourceUnit from;
- private IWorkingBuffer buffer;
+ private final SourceUnit from;
+ private WorkingBuffer buffer;
private int counter= 0;
@@ -48,17 +48,18 @@
*
* @param from the underlying unit to create a working copy from
*/
- public GenericSourceUnitWorkingCopy(final ISourceUnit from) {
+ @SuppressWarnings("null")
+ public GenericSourceUnitWorkingCopy(final SourceUnit from) {
this.from= from;
}
@Override
- public final ISourceUnit getUnderlyingUnit() {
+ public final SourceUnit getUnderlyingUnit() {
return this.from;
}
- protected final IWorkingBuffer getWorkingBuffer() {
+ protected final WorkingBuffer getWorkingBuffer() {
return this.buffer;
}
@@ -67,49 +68,31 @@
return this.buffer.isSynchronized();
}
- /**
- * {@inheritDoc}
- */
@Override
public String getModelTypeId() {
return this.from.getModelTypeId();
}
- /**
- * {@inheritDoc}
- */
@Override
public int getElementType() {
return this.from.getElementType();
}
- /**
- * {@inheritDoc}
- */
@Override
public ElementName getElementName() {
return this.from.getElementName();
}
- /**
- * {@inheritDoc}
- */
@Override
public String getId() {
return this.from.getId();
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean exists() {
return this.counter > 0;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean isReadOnly() {
return false;
@@ -120,20 +103,14 @@
return this.buffer.checkState(validate, monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
- public Object getResource() {
+ public @Nullable Object getResource() {
return this.from.getResource();
}
- /**
- * {@inheritDoc}
- */
@Override
- public AbstractDocument getDocument(final IProgressMonitor monitor) {
+ public AbstractDocument getDocument(final @Nullable IProgressMonitor monitor) {
return this.buffer.getDocument(monitor);
}
@@ -142,68 +119,32 @@
return this.from.getDocumentContentInfo();
}
- /**
- * {@inheritDoc}
- */
@Override
public long getContentStamp(final IProgressMonitor monitor) {
return this.buffer.getContentStamp(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
public SourceContent getContent(final IProgressMonitor monitor) {
return this.buffer.getContent(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync, final IProgressMonitor monitor) {
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
+ final IProgressMonitor monitor) {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int syncLevel, final IProgressMonitor monitor) {
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int syncLevel,
+ final IProgressMonitor monitor) {
return null;
}
- /**
- * {@inheritDoc}
- */
- @Override
- public IModelElement getModelParent() {
- return null; // directory
- }
- /**
- * {@inheritDoc}
- */
@Override
- public boolean hasModelChildren(final Filter filter) {
- return false;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public List<? extends IModelElement> getModelChildren(final Filter filter) {
- return Collections.EMPTY_LIST;
- }
-
-
- /**
- * {@inheritDoc}
- */
- @Override
+ @SuppressWarnings("unused")
public synchronized final void connect(final IProgressMonitor monitor) {
this.counter++;
if (this.counter == 1) {
@@ -217,9 +158,6 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized final void disconnect(final IProgressMonitor monitor) {
this.counter--;
@@ -231,15 +169,12 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized boolean isConnected() {
return (this.counter > 0);
}
- protected abstract IWorkingBuffer createWorkingBuffer(SubMonitor m);
+ protected abstract WorkingBuffer createWorkingBuffer(SubMonitor m);
protected void register() {
}
@@ -247,8 +182,9 @@
protected void unregister() {
}
+
@Override
- public <T> T getAdapter(final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
return this.from.getAdapter(adapterType);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy2.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy2.java
index 7b97cbb..98856dd 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy2.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericSourceUnitWorkingCopy2.java
@@ -16,9 +16,13 @@
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.build.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
@@ -27,25 +31,27 @@
* <li>Support for {@link SourceUnitModelContainer}</li>
* </ul>
*
- * @param <M>
+ * @param <TModelContainer>
*/
-public abstract class GenericSourceUnitWorkingCopy2<M extends SourceUnitModelContainer<? extends ISourceUnit, ? extends ISourceUnitModelInfo>>
+@NonNullByDefault
+public abstract class GenericSourceUnitWorkingCopy2<
+ TModelContainer extends SourceUnitModelContainer<? extends SourceUnit, ? extends SourceUnitModelInfo>>
extends GenericSourceUnitWorkingCopy {
- private final M model;
+ private final TModelContainer model;
- public GenericSourceUnitWorkingCopy2(final ISourceUnit from) {
+ public GenericSourceUnitWorkingCopy2(final SourceUnit from) {
super(from);
this.model= createModelContainer();
}
- protected abstract M createModelContainer();
+ protected abstract TModelContainer createModelContainer();
- protected final M getModelContainer() {
+ protected final TModelContainer getModelContainer() {
return this.model;
}
@@ -58,7 +64,7 @@
}
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync,
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
return this.model.getAstInfo(ensureSync, monitor);
@@ -67,7 +73,7 @@
}
@Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int flags,
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int flags,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
return this.model.getModelInfo(flags, monitor);
@@ -77,9 +83,9 @@
@Override
@SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
if (adapterType == this.model.getAdapterClass()) {
- return (T) this.model;
+ return (T)this.model;
}
return super.getAdapter(adapterType);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit.java
index 1338d54..97b21de 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit.java
@@ -14,41 +14,42 @@
package org.eclipse.statet.ltk.model.core.impl;
-import java.util.Collections;
-import java.util.List;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.text.AbstractDocument;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.core.ElementName;
import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
* Generic source unit for external files (URI/EFS).
*/
-public abstract class GenericUriSourceUnit implements ISourceUnit {
+@NonNullByDefault
+public abstract class GenericUriSourceUnit implements SourceUnit {
private final String id;
private final ElementName name;
private final IFileStore fileStore;
- private IWorkingBuffer buffer;
+ private WorkingBuffer buffer;
private int counter= 0;
+ @SuppressWarnings("null")
public GenericUriSourceUnit(final String id, final IFileStore fileStore) {
- if (fileStore == null) {
- throw new NullPointerException("fileStore"); //$NON-NLS-1$
- }
this.id= id;
this.name= new ElementName() {
@Override
@@ -64,19 +65,16 @@
return GenericUriSourceUnit.this.id;
}
@Override
- public ElementName getNextSegment() {
+ public @Nullable ElementName getNextSegment() {
return null;
}
};
- this.fileStore= fileStore;
+ this.fileStore= nonNullAssert(fileStore);
}
- /**
- * {@inheritDoc}
- */
@Override
- public ISourceUnit getUnderlyingUnit() {
+ public @Nullable SourceUnit getUnderlyingUnit() {
return null;
}
@@ -85,9 +83,6 @@
return this.buffer.isSynchronized();
}
- /**
- * {@inheritDoc}
- */
@Override
public String getId() {
return this.id;
@@ -97,32 +92,23 @@
* {@inheritDoc}
*
* A source unit of this type is usually of the type
- * {@link IModelElement#C2_SOURCE_FILE C2_SOURCE_FILE}.
+ * {@link LtkModelElement#C2_SOURCE_FILE C2_SOURCE_FILE}.
*/
@Override
public int getElementType() {
- return IModelElement.C2_SOURCE_FILE;
+ return LtkModelElement.C2_SOURCE_FILE;
}
- /**
- * {@inheritDoc}
- */
@Override
public ElementName getElementName() {
return this.name;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean exists() {
return this.counter > 0;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean isReadOnly() {
return false;
@@ -145,85 +131,37 @@
}
- /**
- * {@inheritDoc}
- */
@Override
- public AbstractDocument getDocument(final IProgressMonitor monitor) {
+ public AbstractDocument getDocument(final @Nullable IProgressMonitor monitor) {
return this.buffer.getDocument(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
public long getContentStamp(final IProgressMonitor monitor) {
return this.buffer.getContentStamp(monitor);
}
- /**
- * {@inheritDoc}
- */
@Override
public SourceContent getContent(final IProgressMonitor monitor) {
return this.buffer.getContent(monitor);
}
+
@Override
- @SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
- if (adapterType == IFileStore.class) {
- return (T) this.fileStore;
- }
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
+ final IProgressMonitor monitor) {
+ return null;
+ }
+
+ @Override
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int syncLevel,
+ final IProgressMonitor monitor) {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync, final IProgressMonitor monitor) {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int syncLevel, final IProgressMonitor monitor) {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public IModelElement getModelParent() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean hasModelChildren(final Filter filter) {
- return false;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public List<? extends IModelElement> getModelChildren(final Filter filter) {
- return Collections.EMPTY_LIST;
- }
-
-
- /**
- * {@inheritDoc}
- */
- @Override
+ @SuppressWarnings("unused")
public synchronized final void connect(final IProgressMonitor monitor) {
this.counter++;
if (this.counter == 1) {
@@ -236,9 +174,6 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized final void disconnect(final IProgressMonitor monitor) {
this.counter--;
@@ -249,15 +184,12 @@
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized boolean isConnected() {
return (this.counter > 0);
}
- protected abstract IWorkingBuffer createWorkingBuffer(SubMonitor m);
+ protected abstract WorkingBuffer createWorkingBuffer(SubMonitor m);
protected void register() {
}
@@ -267,6 +199,16 @@
@Override
+ @SuppressWarnings("unchecked")
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
+ if (adapterType == IFileStore.class) {
+ return (T)this.fileStore;
+ }
+ return null;
+ }
+
+
+ @Override
public String toString() {
return getModelTypeId() + '/' + getWorkingContext() + ": " + getId(); //$NON-NLS-1$
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit2.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit2.java
index 4e54f72..1ad0119 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit2.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/GenericUriSourceUnit2.java
@@ -17,9 +17,13 @@
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.build.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
@@ -28,13 +32,15 @@
* <li>Support for {@link SourceUnitModelContainer}</li>
* </ul>
*
- * @param <M>
+ * @param <TModelContainer>
*/
-public abstract class GenericUriSourceUnit2<M extends SourceUnitModelContainer<? extends ISourceUnit, ? extends ISourceUnitModelInfo>>
+@NonNullByDefault
+public abstract class GenericUriSourceUnit2<
+ TModelContainer extends SourceUnitModelContainer<? extends SourceUnit, ? extends SourceUnitModelInfo>>
extends GenericUriSourceUnit {
- private final M model;
+ private final TModelContainer model;
public GenericUriSourceUnit2(final String id, final IFileStore fileStore) {
@@ -44,10 +50,10 @@
}
- protected abstract M createModelContainer();
+ protected abstract TModelContainer createModelContainer();
- protected final M getModelContainer() {
+ protected final TModelContainer getModelContainer() {
return this.model;
}
@@ -60,7 +66,7 @@
}
@Override
- public AstInfo getAstInfo(final String type, final boolean ensureSync,
+ public @Nullable AstInfo getAstInfo(final @Nullable String type, final boolean ensureSync,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
return this.model.getAstInfo(ensureSync, monitor);
@@ -69,7 +75,7 @@
}
@Override
- public ISourceUnitModelInfo getModelInfo(final String type, final int flags,
+ public @Nullable SourceUnitModelInfo getModelInfo(final @Nullable String type, final int flags,
final IProgressMonitor monitor) {
if (type == null || this.model.isContainerFor(type)) {
return this.model.getModelInfo(flags, monitor);
@@ -79,9 +85,9 @@
@Override
@SuppressWarnings("unchecked")
- public <T> T getAdapter(final Class<T> adapterType) {
+ public <T> @Nullable T getAdapter(final Class<T> adapterType) {
if (adapterType == this.model.getAdapterClass()) {
- return (T) this.model;
+ return (T)this.model;
}
return super.getAdapter(adapterType);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/IWorkingBuffer.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/IWorkingBuffer.java
deleted file mode 100644
index e08aa8c..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/IWorkingBuffer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2007, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.model.core.impl;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.text.AbstractDocument;
-
-import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-
-
-/**
- * Interface to access documents.
- * Usually only used inside implementations of {@link ISourceUnit}.
- * <p>
- * For the progress monitors of the methods the SubMonitor pattern is applied.</p>
- */
-public interface IWorkingBuffer {
-
-
- long getContentStamp(IProgressMonitor monitor);
-
- /**
- * @return the document or <code>null</code>
- */
- AbstractDocument getDocument();
-
- /**
- * @return the document
- */
- AbstractDocument getDocument(IProgressMonitor monitor);
- SourceContent getContent(IProgressMonitor monitor);
- boolean checkState(boolean validate, IProgressMonitor monitor);
- boolean isSynchronized();
- void saveDocument(IProgressMonitor monitor);
- void releaseDocument(IProgressMonitor monitor);
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/NameAccessAccumulator.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/NameAccessAccumulator.java
index 6390fd9..9325ecb 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/NameAccessAccumulator.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/NameAccessAccumulator.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.ltk.model.core.impl;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
import java.util.ArrayList;
import java.util.List;
@@ -33,10 +35,7 @@
public NameAccessAccumulator(final String label) {
- if (label == null) {
- throw new NullPointerException("label"); //$NON-NLS-1$
- }
- this.label= label;
+ this.label= nonNullAssert(label);
this.list= new ArrayList<>(8);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/SourceUnitModelContainer.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/SourceUnitModelContainer.java
deleted file mode 100644
index 65974fe..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/SourceUnitModelContainer.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2009, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.model.core.impl;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.issues.core.ProblemRequestor;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
-
-
-public abstract class SourceUnitModelContainer<U extends ISourceUnit, M extends ISourceUnitModelInfo> {
-
-
- private final WorkingContext mode;
-
- private final U unit;
-
- private AstInfo astInfo;
-
- private M modelInfo;
-
-
- public SourceUnitModelContainer(final U unit) {
- this.unit= unit;
- this.mode= getMode(unit);
- }
-
-
- public abstract boolean isContainerFor(String modelTypeId);
-
- public abstract Class<?> getAdapterClass();
-
-
- protected WorkingContext getMode(final U su) {
- if (su instanceof IWorkspaceSourceUnit) {
- return su.getWorkingContext();
- }
- return null;
- }
-
- protected final WorkingContext getMode() {
- return this.mode;
- }
-
-
- public U getSourceUnit() {
- return this.unit;
- }
-
- public SourceContent getParseContent(final IProgressMonitor monitor) {
- return this.unit.getContent(monitor);
- }
-
- public AstInfo getAstInfo(final boolean ensureSync, final IProgressMonitor monitor) {
- if (ensureSync) {
- getModelManager().reconcile(this, IModelManager.AST, monitor);
- }
- return this.astInfo;
- }
-
- public M getModelInfo(final int syncLevel, final IProgressMonitor monitor) {
- if ((syncLevel & IModelManager.REFRESH) != 0) {
- clear();
- }
- if ((syncLevel & 0xf) >= IModelManager.MODEL_FILE) {
- final M currentModel= this.modelInfo;
- if ((syncLevel & IModelManager.RECONCILE) != 0
- || currentModel == null
- || currentModel.getStamp().getSourceStamp() == 0
- || currentModel.getStamp().getSourceStamp() != this.unit.getContentStamp(monitor) ) {
- getModelManager().reconcile(this, syncLevel, monitor);
- }
- }
- return this.modelInfo;
- }
-
- protected abstract IModelManager getModelManager();
-
-
- public void clear() {
- this.astInfo= null;
- this.modelInfo= null;
- }
-
- public AstInfo getCurrentAst() {
- if (this.mode == LTK.PERSISTENCE_CONTEXT) {
- final M model= getCurrentModel();
- if (model != null) {
- return model.getAst();
- }
- return null;
- }
- return this.astInfo;
- }
-
- public void setAst(final AstInfo ast) {
- if (this.mode == LTK.PERSISTENCE_CONTEXT) {
- return;
- }
- this.astInfo= ast;
- }
-
- public M getCurrentModel() {
- return this.modelInfo;
- }
-
- public void setModel(final M modelInfo) {
- if (modelInfo != null
- && (this.astInfo == null || this.astInfo.getStamp().equals(modelInfo.getAst().getStamp())) ) {
- // otherwise, the ast is probably newer
- setAst(modelInfo.getAst());
- }
- this.modelInfo= modelInfo;
- }
-
-
- public ProblemRequestor createProblemRequestor() {
- return null;
- }
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/WorkingBuffer.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/WorkingBuffer.java
index 70fb15a..04f49c0 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/WorkingBuffer.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/WorkingBuffer.java
@@ -14,327 +14,41 @@
package org.eclipse.statet.ltk.model.core.impl;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.LocationKind;
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.text.AbstractDocument;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension4;
-import org.eclipse.jface.text.ISynchronizable;
-import org.eclipse.statet.ecommons.io.FileUtil;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.internal.ltk.core.LTKCorePlugin;
import org.eclipse.statet.ltk.core.SourceContent;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * Common implementation of {@link IWorkingBuffer} for source units based on
- * an {@link IFile} or an {@link IFileStore}.
+ * Interface to access documents.
+ * Usually only used inside implementations of {@link SourceUnit}.
+ * <p>
+ * For the progress monitors of the methods the SubMonitor pattern is applied.</p>
*/
-public class WorkingBuffer implements IWorkingBuffer {
-
- /** Mode for IFile (in workspace) */
- protected static final byte IFILE= 1;
- /** Mode for IFileStore (URI) */
- protected static final byte FILESTORE= 2;
-
- protected static final byte DOCUMENT= 1;
+@NonNullByDefault
+public interface WorkingBuffer {
- public static SourceContent createContentFromDocument(final IDocument doc) {
- Object lock= null;
- if (doc instanceof ISynchronizable) {
- lock= ((ISynchronizable) doc).getLockObject();
- }
- if (lock != null && doc instanceof IDocumentExtension4) {
- synchronized (lock) {
- return new SourceContent(
- ((IDocumentExtension4) doc).getModificationStamp(),
- doc.get() );
- }
- }
- else {
- return new SourceContent(System.currentTimeMillis(), doc.get());
- }
- }
-
-
- protected final ISourceUnit unit;
- private AbstractDocument document;
+ long getContentStamp(final IProgressMonitor monitor);
/**
- * Mode of this working buffer:<ul>
- * <li>= 0 - uninitialized</li>
- * <li>< 0 - invalid/no source found</li>
- * <li>> 0 - mode constant {@link #IFILE}, {@link #FILESTORE}</li>
- * </ul>
+ * @return the document or <code>null</code>
*/
- private byte mode;
-
- public WorkingBuffer(final ISourceUnit unit) {
- this.unit= unit;
- }
-
+ @Nullable AbstractDocument getDocument();
/**
- * Checks the mode of this working buffer
- *
- * @return <code>true</code> if valid mode, otherwise <code>false</code>
+ * @return the document
*/
- protected final byte detectResourceMode() {
- if (this.mode == 0) {
- final Object resource= this.unit.getResource();
- if (resource instanceof IFile) {
- this.mode= IFILE;
- }
- else if (resource instanceof IFileStore
- && !((IFileStore) resource).fetchInfo().isDirectory() ) {
- this.mode= FILESTORE;
- }
- if (this.mode == 0) {
- this.mode= -1;
- }
- }
- return this.mode;
- }
-
- protected final byte getResourceMode() {
- return this.mode;
- }
-
- protected byte getContentMode() {
- return 0;
- }
-
-
- @Override
- public long getContentStamp(final IProgressMonitor monitor) {
- { final AbstractDocument doc= this.document;
- if (doc != null) {
- return doc.getModificationStamp();
- }
- }
- { final ISourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
- if (underlyingUnit != null) {
- return underlyingUnit.getContentStamp(monitor);
- }
- }
- if (detectResourceMode() == IFILE) {
- final IFile resource= (IFile) this.unit.getResource();
- if (resource != null) {
- return resource.getModificationStamp();
- }
- }
- return 0;
- }
-
- @Override
- public synchronized AbstractDocument getDocument() {
- return this.document;
- }
-
- @Override
- public synchronized AbstractDocument getDocument(final IProgressMonitor monitor) {
- AbstractDocument doc= this.document;
- if (doc == null) {
- final SubMonitor m= SubMonitor.convert(monitor);
- doc= createDocument(m);
- checkDocument(doc);
- if ((getContentMode() & DOCUMENT) != 0) {
- this.document= doc;
- }
- }
- return doc;
- }
-
- @Override
- public SourceContent getContent(final IProgressMonitor monitor) {
- final SubMonitor m= SubMonitor.convert(monitor);
- final IDocument doc= ((getContentMode() & DOCUMENT) != 0) ? getDocument(monitor) : getDocument();
- if (doc != null) {
- return createContentFromDocument(doc);
- }
- return createContent(m);
- }
-
- @Override
- public void saveDocument(final IProgressMonitor monitor) {
- }
-
- @Override
- public synchronized void releaseDocument(final IProgressMonitor monitor) {
- this.document= null;
- }
-
- @Override
- public boolean checkState(final boolean validate, final IProgressMonitor monitor) {
- { final ISourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
- if (underlyingUnit != null) {
- return underlyingUnit.checkState(validate, monitor);
- }
- }
- switch (detectResourceMode()) {
- case IFILE:
- { final IFile resource= (IFile) this.unit.getResource();
- if (!validate) {
- return !resource.getResourceAttributes().isReadOnly();
- }
- else {
- return resource.getWorkspace().validateEdit(new IFile[] { resource }, IWorkspace.VALIDATE_PROMPT).isOK();
- }
- }
- case FILESTORE:
- { final IFileStore store= (IFileStore) this.unit.getResource();
- try {
- return !store.fetchInfo(EFS.NONE, monitor).getAttribute(EFS.ATTRIBUTE_READ_ONLY);
- }
- catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, 0,
- "An error occurred when checking modifiable state of the file.", e));
- return false;
- }
- }
- default:
- return false;
- }
- }
-
-
- protected AbstractDocument createDocument(final SubMonitor m) {
- final IDocument fileDoc= createEmptyDocument();
- if (!(fileDoc instanceof AbstractDocument)) {
- return null;
- }
- final AbstractDocument document= (AbstractDocument) fileDoc;
-
- final ISourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
- if (underlyingUnit != null) {
- final SourceContent underlyingContent= underlyingUnit.getContent(m);
-// if (document instanceof IDocumentExtension4) {
- document.set(underlyingContent.getText(), underlyingContent.getStamp());
-// }
-// else {
-// document.set(underlyingContent.text);
-// }
- }
- else {
- final Object resource= this.unit.getResource();
- if (resource instanceof IFile) {
- loadDocumentFromFile((IFile) resource, document, m);
- }
- }
-
- return document;
- }
-
- private IDocument createEmptyDocument() {
- switch (detectResourceMode()) {
- case IFILE:
- return FileBuffers.getTextFileBufferManager().createEmptyDocument(
- ((IFile) this.unit.getResource()).getFullPath(),
- LocationKind.IFILE );
- case FILESTORE:
- return FileBuffers.getTextFileBufferManager().createEmptyDocument(
- URIUtil.toPath(((IFileStore) this.unit.getResource()).toURI()),
- LocationKind.LOCATION );
- default:
- return FileBuffers.getTextFileBufferManager().createEmptyDocument(null, null);
- }
- }
-
- protected void checkDocument(final AbstractDocument document) {
- if (document instanceof ISynchronizable) {
- synchronized (document) {
- if (((ISynchronizable) document).getLockObject() == null) {
- ((ISynchronizable) document).setLockObject(new Object());
- }
- }
- }
- }
-
- protected final void loadDocumentFromFile(final IFile file, final AbstractDocument document, final SubMonitor m) {
- try {
- FileUtil.getFileUtil(file).createReadTextFileOp(new FileUtil.ReaderAction() {
- @Override
- public void run(final BufferedReader reader, final IProgressMonitor monitor) throws IOException {
- final StringBuilder buffer= new StringBuilder();
- final char[] readBuffer= new char[2048];
- int n;
- while ((n= reader.read(readBuffer)) > 0) {
- buffer.append(readBuffer, 0, n);
- }
-// if (document instanceof IDocumentExtension4) {
- document.set(buffer.toString(), file.getModificationStamp());
-// }
-// else {
-// document.set(buffer.toString());
-// }
- }
- }).doOperation(m);
- }
- catch (final OperationCanceledException e) {
- }
- catch (final CoreException e) {
- LTKCorePlugin.log(e.getStatus());
- }
- }
-
- protected SourceContent createContent(final SubMonitor m) {
- final ISourceUnit underlyingUnit= this.unit.getUnderlyingUnit();
- if (underlyingUnit != null) {
- return underlyingUnit.getContent(m);
- }
- else {
- final Object resource= this.unit.getResource();
- final AtomicReference<SourceContent> content= new AtomicReference<>();
- if (resource instanceof IFile) {
- loadContentFromFile((IFile) resource, content, m);
- }
- return content.get();
- }
- }
-
- protected final void loadContentFromFile(final IFile file, final AtomicReference<SourceContent> content, final SubMonitor m) {
- try {
- FileUtil.getFileUtil(file).createReadTextFileOp(new FileUtil.ReaderAction() {
- @Override
- public void run(final BufferedReader reader, final IProgressMonitor monitor) throws IOException {
- final StringBuilder buffer= new StringBuilder();
- final char[] readBuffer= new char[2048];
- int n;
- while ((n= reader.read(readBuffer)) >= 0) {
- buffer.append(readBuffer, 0, n);
- }
- content.set(new SourceContent(file.getModificationStamp(), buffer.toString()));
- }
- }).doOperation(m);
- }
- catch (final OperationCanceledException e) {
- }
- catch (final CoreException e) {
- LTKCorePlugin.log(e.getStatus());
- }
- }
-
- @Override
- public boolean isSynchronized() {
- return false;
- }
+ AbstractDocument getDocument(final @Nullable IProgressMonitor monitor);
+ SourceContent getContent(final IProgressMonitor monitor);
+ boolean checkState(final boolean validate, final IProgressMonitor monitor);
+ boolean isSynchronized();
+ void saveDocument(final IProgressMonitor monitor);
+ void releaseDocument(final IProgressMonitor monitor);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/util/ElementComparator.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/util/ElementComparator.java
deleted file mode 100644
index ba78dc8..0000000
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/util/ElementComparator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2013, 2020 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.ltk.model.core.util;
-
-import java.util.Comparator;
-
-import com.ibm.icu.text.Collator;
-
-import org.eclipse.statet.ltk.core.LTKUtils;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-
-
-public class ElementComparator implements Comparator<IModelElement> {
-
-
- private final Collator unitComparator;
- private final Collator elementComparator;
-
-
- public ElementComparator() {
- this(Collator.getInstance());
- }
-
- public ElementComparator(final Collator elementComparator) {
- this.unitComparator= Collator.getInstance();
- this.elementComparator= elementComparator;
- }
-
-
- @Override
- public int compare(final IModelElement e1, final IModelElement e2) {
- final ISourceUnit u1= LTKUtils.getSourceUnit(e1);
- final ISourceUnit u2= LTKUtils.getSourceUnit(e2);
- int result= 0;
- if (u1 != null && u2 != null) {
- if (u1 != u2) {
- result= this.unitComparator.compare(u1.getId(), u2.getId());
- }
- if (result != 0) {
- return result;
- }
- if (e1 instanceof ISourceElement) {
- if (e2 instanceof ISourceElement) {
- return compareSourceElementsInUnit((ISourceElement) e1, (ISourceElement) e2);
- }
- return -1000000;
- }
- else if (e2 instanceof ISourceElement) { // && !(e1 instanceof ISourceUnit)
- return 1000000;
- }
- else {
- return this.elementComparator.compare(e1.getId(), e2.getId());
- }
- }
- if (u1 == null && u2 != null) {
- return Integer.MAX_VALUE;
- }
- if (u2 == null && u1 != null) {
- return Integer.MIN_VALUE;
- }
- return 0;
- }
-
- protected int compareSourceElementsInUnit(final ISourceElement e1, final ISourceElement e2) {
- return e1.getSourceRange().getStartOffset() - e2.getSourceRange().getStartOffset();
- }
-
-}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/util/LtkModelElementComparator.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/util/LtkModelElementComparator.java
new file mode 100644
index 0000000..93e600d
--- /dev/null
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/util/LtkModelElementComparator.java
@@ -0,0 +1,96 @@
+/*=============================================================================#
+ # Copyright (c) 2013, 2020 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.ltk.model.core.util;
+
+import java.util.Comparator;
+
+import com.ibm.icu.text.Collator;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+
+
+@NonNullByDefault
+public class LtkModelElementComparator implements Comparator<LtkModelElement> {
+
+
+ private final Collator unitIdComparator;
+ private final Collator elementIdComparator;
+
+
+ public LtkModelElementComparator() {
+ this(Collator.getInstance());
+ }
+
+ public LtkModelElementComparator(final Collator elementIdComparator) {
+ this.unitIdComparator= Collator.getInstance();
+ this.elementIdComparator= elementIdComparator;
+ }
+
+
+ @Override
+ public int compare(final @Nullable LtkModelElement e1, final @Nullable LtkModelElement e2) {
+ if (e1 == e2) {
+ return 0;
+ }
+ if (e1 == null) {
+ return 1;
+ }
+ if (e2 == null) {
+ return -1;
+ }
+ final SourceUnit u1= LtkModelUtils.getSourceUnit(e1);
+ final SourceUnit u2= LtkModelUtils.getSourceUnit(e2);
+ final int result= compareSourceUnits(u1, u2);
+ if (result != 0) {
+ return result;
+ }
+ if (e1 instanceof SourceElement) {
+ if (e2 instanceof SourceElement) {
+ return compareSourceElementsInUnit((SourceElement)e1, (SourceElement)e2);
+ }
+ return -1;
+ }
+ else if (e2 instanceof SourceElement) { // && !(e1 instanceof SourceUnit)
+ return 1;
+ }
+ else {
+ return this.elementIdComparator.compare(e1.getId(), e2.getId());
+ }
+ }
+
+ protected int compareSourceUnits(final @Nullable SourceUnit u1, final @Nullable SourceUnit u2) {
+ if (u1 == u2) {
+ return 0;
+ }
+ if (u1 == null) {
+ return 1;
+ }
+ if (u2 == null) {
+ return -1;
+ }
+ return this.unitIdComparator.compare(u1.getId(), u2.getId());
+ }
+
+ protected int compareSourceElementsInUnit(final SourceElement e1, final SourceElement e2) {
+ return e1.getSourceRange().getStartOffset() - e2.getSourceRange().getStartOffset();
+ }
+
+}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonCopyProcessor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonCopyProcessor.java
index 2d36cca..f2013a6 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonCopyProcessor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonCopyProcessor.java
@@ -37,7 +37,7 @@
import org.eclipse.statet.internal.ltk.refactoring.core.Messages;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
public abstract class CommonCopyProcessor extends CopyProcessor {
@@ -60,7 +60,7 @@
this.elementsToCopy= elements;
this.destination= destination;
if (destination.getInitialObjects().size() != 1
- || !(destination.getInitialObjects().get(0) instanceof IModelElement) ) {
+ || !(destination.getInitialObjects().get(0) instanceof LtkModelElement) ) {
throw new IllegalArgumentException();
}
this.adapter= adapter;
@@ -155,7 +155,9 @@
Messages.CopyRefactoring_description_singular : Messages.CopyRefactoring_description_plural;
final IProject resource= this.elementsToCopy.getSingleProject();
final String project= (resource != null) ? resource.getName() : null;
- final String source= (project != null) ? NLS.bind(RefactoringMessages.Common_Source_Project_label, project) : RefactoringMessages.Common_Source_Workspace_label;
+ final String source= (project != null) ?
+ NLS.bind(RefactoringMessages.Common_Source_Project_label, project) :
+ RefactoringMessages.Common_Source_Workspace_label;
// final String header= NLS.bind(RefactoringCoreMessages.JavaDeleteProcessor_header, new String[] { String.valueOf(this.elements.length), source});
// final int flags= JavaRefactoringDescriptor.JAR_MIGRATION | JavaRefactoringDescriptor.JAR_REFACTORING | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE;
// final JDTRefactoringDescriptorComment comment= new JDTRefactoringDescriptorComment(project, this, header);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonDeleteProcessor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonDeleteProcessor.java
index acba2b4..1d97a7e 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonDeleteProcessor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonDeleteProcessor.java
@@ -156,7 +156,9 @@
Messages.DeleteRefactoring_description_singular : Messages.DeleteRefactoring_description_plural;
final IProject resource= this.elementsToDelete.getSingleProject();
final String project= (resource != null) ? resource.getName() : null;
- final String source= (project != null) ? NLS.bind(RefactoringMessages.Common_Source_Project_label, project) : RefactoringMessages.Common_Source_Workspace_label;
+ final String source= (project != null) ?
+ NLS.bind(RefactoringMessages.Common_Source_Project_label, project) :
+ RefactoringMessages.Common_Source_Workspace_label;
// final String header= NLS.bind(RefactoringCoreMessages.JavaDeleteProcessor_header, new String[] { String.valueOf(this.elements.length), source});
// final int flags= JavaRefactoringDescriptor.JAR_MIGRATION | JavaRefactoringDescriptor.JAR_REFACTORING | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE;
// final JDTRefactoringDescriptorComment comment= new JDTRefactoringDescriptorComment(project, this, header);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonMoveProcessor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonMoveProcessor.java
index d53aafa..a086a59 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonMoveProcessor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonMoveProcessor.java
@@ -37,7 +37,7 @@
import org.eclipse.statet.internal.ltk.refactoring.core.Messages;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
public abstract class CommonMoveProcessor extends MoveProcessor {
@@ -60,7 +60,7 @@
this.elementsToMove= elements;
this.destination= destination;
if (destination.getInitialObjects().size() != 1
- || !(destination.getInitialObjects().get(0) instanceof IModelElement) ) {
+ || !(destination.getInitialObjects().get(0) instanceof LtkModelElement) ) {
throw new IllegalArgumentException();
}
this.adapter= adapter;
@@ -157,7 +157,9 @@
Messages.MoveRefactoring_description_singular : Messages.MoveRefactoring_description_plural;
final IProject resource= this.elementsToMove.getSingleProject();
final String project= (resource != null) ? resource.getName() : null;
- final String source= (project != null) ? NLS.bind(RefactoringMessages.Common_Source_Project_label, project) : RefactoringMessages.Common_Source_Workspace_label;
+ final String source= (project != null) ?
+ NLS.bind(RefactoringMessages.Common_Source_Project_label, project) :
+ RefactoringMessages.Common_Source_Workspace_label;
// final String header= NLS.bind(RefactoringCoreMessages.JavaDeleteProcessor_header, new String[] { String.valueOf(this.elements.length), source});
// final int flags= JavaRefactoringDescriptor.JAR_MIGRATION | JavaRefactoringDescriptor.JAR_REFACTORING | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE;
// final JDTRefactoringDescriptorComment comment= new JDTRefactoringDescriptorComment(project, this, header);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonPasteCodeProcessor.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonPasteCodeProcessor.java
index c68c7a2..ac90840 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonPasteCodeProcessor.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonPasteCodeProcessor.java
@@ -142,7 +142,9 @@
final String description= Messages.PasteRefactoring_Code_description;
final IProject resource= this.destination.getSingleProject();
final String project= (resource != null) ? resource.getName() : null;
- final String source= (project != null) ? NLS.bind(RefactoringMessages.Common_Source_Project_label, project) : RefactoringMessages.Common_Source_Workspace_label;
+ final String source= (project != null) ?
+ NLS.bind(RefactoringMessages.Common_Source_Project_label, project) :
+ RefactoringMessages.Common_Source_Workspace_label;
// final String header= NLS.bind(RefactoringCoreMessages.JavaDeleteProcessor_header, new String[] { String.valueOf(this.elements.length), source});
// final int flags= JavaRefactoringDescriptor.JAR_MIGRATION | JavaRefactoringDescriptor.JAR_REFACTORING | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE;
// final JDTRefactoringDescriptorComment comment= new JDTRefactoringDescriptorComment(project, this, header);
@@ -174,5 +176,4 @@
}
}
-
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonRefactoringFactory.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonRefactoringFactory.java
index f0a39b0..1615f3c 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonRefactoringFactory.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/CommonRefactoringFactory.java
@@ -55,7 +55,7 @@
protected ElementSet createElementSet(final Object elements) {
if (elements instanceof ElementSet) {
- return (ElementSet) elements;
+ return (ElementSet)elements;
}
if (elements instanceof Object[]) {
return new ElementSet((Object[]) elements);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/MultiRefactoringFactory.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/MultiRefactoringFactory.java
index bfdf8b8..132c4b6 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/MultiRefactoringFactory.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/MultiRefactoringFactory.java
@@ -23,7 +23,7 @@
import org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
public abstract class MultiRefactoringFactory extends CommonRefactoringFactory {
@@ -57,7 +57,7 @@
}
this.secondaryFactories.put(modelTypeId, factory);
}
- return (factory != NO_FACTORY) ? (CommonRefactoringFactory) factory : null;
+ return (factory != NO_FACTORY) ? (CommonRefactoringFactory)factory : null;
}
protected abstract CommonRefactoringFactory createFactory(String modelTypeId);
@@ -67,13 +67,13 @@
public RefactoringAdapter createAdapter(Object elements) {
String type= null;
if (elements instanceof ElementSet) {
- elements= ((ElementSet) elements).getInitialObjects();
+ elements= ((ElementSet)elements).getInitialObjects();
}
else if (elements instanceof Object[]) {
final Object[] array= (Object[]) elements;
for (int i= 0; i < array.length; i++) {
- if (array[i] instanceof IModelElement) {
- final String elementType= ((IModelElement) array[i]).getModelTypeId();
+ if (array[i] instanceof LtkModelElement) {
+ final String elementType= ((LtkModelElement)array[i]).getModelTypeId();
if (type == null) {
type= elementType;
continue;
@@ -87,8 +87,8 @@
}
}
}
- else if (elements instanceof IModelElement) {
- type= ((IModelElement) elements).getModelTypeId();
+ else if (elements instanceof LtkModelElement) {
+ type= ((LtkModelElement)elements).getModelTypeId();
}
final CommonRefactoringFactory factory= getFactory(type);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringAdapter.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringAdapter.java
index 020c801..9815ab3 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringAdapter.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringAdapter.java
@@ -77,15 +77,15 @@
import org.eclipse.statet.ecommons.text.TextUtil;
import org.eclipse.statet.internal.ltk.refactoring.core.Messages;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.core.LTKUtils;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
-import org.eclipse.statet.ltk.model.core.util.ElementComparator;
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
+import org.eclipse.statet.ltk.model.core.util.LtkModelElementComparator;
/**
@@ -95,7 +95,7 @@
public abstract class RefactoringAdapter {
- private static final Comparator<IModelElement> MODELELEMENT_SORTER= new ElementComparator();
+ private static final Comparator<LtkModelElement> MODELELEMENT_SORTER= new LtkModelElementComparator();
private final String modelTypeId;
@@ -106,7 +106,7 @@
}
- public Comparator<IModelElement> getModelElementComparator() {
+ public Comparator<LtkModelElement> getModelElementComparator() {
return MODELELEMENT_SORTER;
}
@@ -122,7 +122,7 @@
public abstract boolean isCommentContent(final ITypedRegion partition);
- public abstract BasicHeuristicTokenScanner getScanner(final ISourceUnit su);
+ public abstract BasicHeuristicTokenScanner getScanner(final SourceUnit su);
/**
* - Sort elements
@@ -131,17 +131,17 @@
* @param elements must be sorted by unit and order
* @return
*/
- public ISourceStructElement[] checkElements(final ISourceStructElement[] elements) {
+ public SourceStructElement[] checkElements(final SourceStructElement[] elements) {
if (elements.length <= 1) {
return elements;
}
Arrays.sort(elements, getModelElementComparator());
- ISourceStructElement last= elements[0];
- ISourceUnit unitOfLast= last.getSourceUnit();
+ SourceStructElement last= elements[0];
+ SourceUnit unitOfLast= last.getSourceUnit();
int endOfLast= last.getSourceRange().getEndOffset();
- final List<ISourceStructElement> checked= new ArrayList<>(elements.length);
- for (final ISourceStructElement element : elements) {
- final ISourceUnit unit= element.getSourceUnit();
+ final List<SourceStructElement> checked= new ArrayList<>(elements.length);
+ for (final SourceStructElement element : elements) {
+ final SourceUnit unit= element.getSourceUnit();
final int end= last.getSourceRange().getEndOffset();
if (unit != unitOfLast) {
checked.add(element);
@@ -159,14 +159,14 @@
// is child, ignore
continue;
}
- return checked.toArray(new ISourceStructElement[checked.size()]);
+ return checked.toArray(new SourceStructElement[checked.size()]);
}
- public IRegion getContinuousSourceRange(final ISourceStructElement[] elements) {
+ public IRegion getContinuousSourceRange(final SourceStructElement[] elements) {
if (elements == null || elements.length == 0) {
return null;
}
- final ISourceUnit su= elements[0].getSourceUnit();
+ final SourceUnit su= elements[0].getSourceUnit();
if (su == null) {
return null;
}
@@ -222,7 +222,7 @@
return null;
}
- public String getSourceCodeStringedTogether(final ISourceStructElement[] sourceElements,
+ public String getSourceCodeStringedTogether(final SourceStructElement[] sourceElements,
final IProgressMonitor monitor) throws CoreException {
return getSourceCodeStringedTogether(new ElementSet((Object[]) sourceElements), monitor);
}
@@ -230,7 +230,7 @@
public String getSourceCodeStringedTogether(final ElementSet sourceElements,
final IProgressMonitor monitor) throws CoreException {
final SubMonitor m= SubMonitor.convert(monitor);
- ISourceUnit lastUnit= null;
+ SourceUnit lastUnit= null;
BasicHeuristicTokenScanner scanner= null;
try {
sourceElements.removeElementsWithAncestorsOnList();
@@ -238,16 +238,16 @@
final String lineDelimiter= TextUtil.getPlatformLineDelimiter();
AbstractDocument doc= null;
- final List<IModelElement> modelElements= sourceElements.getModelElements();
+ final List<LtkModelElement<?>> modelElements= sourceElements.getModelElements();
int workRemaining= modelElements.size() * 3 + 1;
final StringBuilder sb= new StringBuilder(modelElements.size() * 100);
final List<String> codeFragments= new ArrayList<>();
- for (final IModelElement element : modelElements) {
+ for (final LtkModelElement<?> element : modelElements) {
m.setWorkRemaining(workRemaining); workRemaining-= 3;
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
if (su != lastUnit) {
if (lastUnit != null) {
lastUnit.disconnect(m.newChild(1));
@@ -258,7 +258,7 @@
scanner= getScanner(su);
doc= su.getDocument(monitor);
}
- getSourceCode((ISourceElement) element, doc, scanner, codeFragments);
+ getSourceCode((SourceElement)element, doc, scanner, codeFragments);
for (final String s : codeFragments) {
sb.append(s);
sb.append(lineDelimiter);
@@ -284,7 +284,7 @@
}
}
- protected void getSourceCode(final ISourceElement element, final AbstractDocument doc,
+ protected void getSourceCode(final SourceElement element, final AbstractDocument doc,
final BasicHeuristicTokenScanner scanner, final List<String> codeFragments)
throws BadLocationException, BadPartitioningException {
final TextRegion range= expandElementRange(element, doc, scanner);
@@ -293,7 +293,7 @@
}
}
- public TextRegion expandElementRange(final ISourceElement element, final AbstractDocument document,
+ public TextRegion expandElementRange(final SourceElement element, final AbstractDocument document,
final BasicHeuristicTokenScanner scanner)
throws BadLocationException, BadPartitioningException {
final TextRegion sourceRange= element.getSourceRange();
@@ -372,7 +372,7 @@
if (!elements.isOK()) {
return false;
}
- for (final IModelElement element : elements.getModelElements()) {
+ for (final LtkModelElement element : elements.getModelElements()) {
if (!canDelete(element)) {
return false;
}
@@ -385,11 +385,11 @@
return true;
}
- public boolean canDelete(final IModelElement element) {
+ public boolean canDelete(final LtkModelElement element) {
if (!element.exists()) {
return false;
}
-// if ((element.getElementType() & IModelElement.MASK_C1) == IModelElement.PROJECT) {
+// if ((element.getElementType() & LtkModelElement.MASK_C1) == LtkModelElement.PROJECT) {
// return false;
// }
if (!isSupportedModelType(element.getModelTypeId())) {
@@ -418,13 +418,13 @@
}
public boolean canInsert(final ElementSet elements, final RefactoringDestination to) {
- if (to.getInitialObjects().get(0) instanceof ISourceElement) {
- return canInsert(elements, (ISourceElement) to.getInitialObjects().get(0), to.getPosition());
+ if (to.getInitialObjects().get(0) instanceof SourceElement) {
+ return canInsert(elements, (SourceElement)to.getInitialObjects().get(0), to.getPosition());
}
return false;
}
- protected boolean canInsert(final ElementSet elements, final ISourceElement to,
+ protected boolean canInsert(final ElementSet elements, final SourceElement to,
final RefactoringDestination.Position pos) {
if (elements.getInitialObjects().size() == 0) {
return false;
@@ -435,7 +435,7 @@
if (!canInsertTo(to)) {
return false;
}
- for (final IModelElement element : elements.getModelElements()) {
+ for (final LtkModelElement element : elements.getModelElements()) {
if (!canInsert(element)) {
return false;
}
@@ -448,7 +448,7 @@
return !elements.includes(to);
}
- protected boolean canInsert(final IModelElement element) {
+ protected boolean canInsert(final LtkModelElement element) {
if (!element.exists()) {
return false;
}
@@ -465,7 +465,7 @@
return canInsertTo(destination.getModelElements().get(0));
}
- protected boolean canInsertTo(final IModelElement element) {
+ protected boolean canInsertTo(final LtkModelElement element) {
if (!element.exists()) {
return false;
}
@@ -482,10 +482,10 @@
public void checkInitialToModify(final RefactoringStatus result, final ElementSet elements) {
final Set<IResource> resources= new HashSet<>();
resources.addAll(elements.getResources());
- for(final IModelElement element : elements.getModelElements()) {
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
- if (su instanceof IWorkspaceSourceUnit) {
- resources.add(((IWorkspaceSourceUnit) su).getResource());
+ for(final LtkModelElement element : elements.getModelElements()) {
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
+ if (su instanceof WorkspaceSourceUnit) {
+ resources.add(((WorkspaceSourceUnit)su).getResource());
continue;
}
result.addFatalError(Messages.Check_ElementNotInWS_message);
@@ -499,10 +499,10 @@
public void checkFinalToModify(final RefactoringStatus result, final ElementSet elements, final IProgressMonitor monitor) {
final Set<IResource> resources= new HashSet<>();
resources.addAll(elements.getResources());
- for(final IModelElement element : elements.getModelElements()) {
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
- if (su instanceof IWorkspaceSourceUnit) {
- resources.add(((IWorkspaceSourceUnit) su).getResource());
+ for(final LtkModelElement element : elements.getModelElements()) {
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
+ if (su instanceof WorkspaceSourceUnit) {
+ resources.add(((WorkspaceSourceUnit)su).getResource());
continue;
}
result.addFatalError(Messages.Check_ElementNotInWS_message);
@@ -514,7 +514,7 @@
}
public void checkFinalToDelete(final RefactoringStatus result, final ElementSet elements) throws CoreException {
- for (final IModelElement element : elements.getModelElements()) {
+ for (final LtkModelElement element : elements.getModelElements()) {
checkFinalToDelete(result, element);
}
for (final IResource element : elements.getResources()) {
@@ -524,7 +524,7 @@
public void checkFinalToDelete(final RefactoringStatus result, final IResource element) throws CoreException {
if (element.getType() == IResource.FILE) {
- warnIfDirty(result, (IFile) element);
+ warnIfDirty(result, (IFile)element);
return;
}
else {
@@ -532,7 +532,7 @@
@Override
public boolean visit(final IResource visitedResource) throws CoreException {
if (visitedResource instanceof IFile) {
- warnIfDirty(result, (IFile) visitedResource);
+ warnIfDirty(result, (IFile)visitedResource);
}
return true;
}
@@ -540,16 +540,16 @@
}
}
- public void checkFinalToDelete(final RefactoringStatus result, final IModelElement element) throws CoreException {
- if ((element.getElementType() & IModelElement.MASK_C2) == IModelElement.C2_SOURCE_FILE) {
- if (element instanceof IWorkspaceSourceUnit) {
- checkFinalToDelete(result, ((IWorkspaceSourceUnit) element).getResource());
+ public void checkFinalToDelete(final RefactoringStatus result, final LtkModelElement element) throws CoreException {
+ if ((element.getElementType() & LtkModelElement.MASK_C2) == LtkModelElement.C2_SOURCE_FILE) {
+ if (element instanceof WorkspaceSourceUnit) {
+ checkFinalToDelete(result, ((WorkspaceSourceUnit)element).getResource());
}
}
- else if ((element.getElementType() & IModelElement.MASK_C1) == IModelElement.C1_BUNDLE
- && element instanceof ISourceStructElement) {
- final List<? extends IModelElement> children= ((ISourceStructElement) element).getSourceChildren(null);
- for (final IModelElement child : children) {
+ else if ((element.getElementType() & LtkModelElement.MASK_C1) == LtkModelElement.C1_BUNDLE
+ && element instanceof SourceStructElement) {
+ final List<? extends LtkModelElement> children= ((SourceStructElement)element).getSourceChildren(null);
+ for (final LtkModelElement child : children) {
checkFinalToDelete(result, child);
}
}
@@ -584,7 +584,7 @@
return true;
}
}
- for (final IModelElement element : elements.getModelElements()) {
+ for (final LtkModelElement element : elements.getModelElements()) {
if (hasReadOnlyElements(element)) {
return true;
}
@@ -597,7 +597,7 @@
return true;
}
if (element instanceof IContainer) {
- final IResource[] members= ((IContainer) element).members(false);
+ final IResource[] members= ((IContainer)element).members(false);
for (final IResource member : members) {
if (hasReadOnlyElements(member)) {
return true;
@@ -607,11 +607,11 @@
return false;
}
- public boolean hasReadOnlyElements(final IModelElement element) throws CoreException {
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
+ public boolean hasReadOnlyElements(final LtkModelElement element) throws CoreException {
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
IResource resource= null;
- if (su instanceof IWorkspaceSourceUnit) {
- resource= ((IWorkspaceSourceUnit) su).getResource();
+ if (su instanceof WorkspaceSourceUnit) {
+ resource= ((WorkspaceSourceUnit)su).getResource();
}
if (resource == null) {
resource= element.getAdapter(IResource.class);
@@ -636,7 +636,8 @@
final RefactoringStatus status, final RefactoringProcessor processor,
final SharableParticipants shared)
throws CoreException {
- final String[] natures= ElementSet.getAffectedProjectNatures(elementsToDelete);
+ final Set<String> natureIds= ElementSet.getAffectedProjectNatures(elementsToDelete);
+ final String[] natures= natureIds.toArray(new String[natureIds.size()]);
final DeleteArguments arguments= new DeleteArguments();
for (final IResource resource : elementsToDelete.getResources()) {
final DeleteParticipant[] deletes= ParticipantManager.loadDeleteParticipants(status,
@@ -650,7 +651,7 @@
arguments, natures, shared);
list.addAll(Arrays.asList(deletes));
}
- for (final IModelElement element : elementsToDelete.getModelElements()) {
+ for (final LtkModelElement element : elementsToDelete.getModelElements()) {
final DeleteParticipant[] deletes= ParticipantManager.loadDeleteParticipants(status,
processor, element,
arguments, natures, shared);
@@ -664,8 +665,9 @@
final RefactoringStatus status, final RefactoringProcessor processor,
final SharableParticipants shared, final ReorgExecutionLog executionLog)
throws CoreException {
- final String[] natures= ElementSet.getAffectedProjectNatures(
+ final Set<String> natureIds= ElementSet.getAffectedProjectNatures(
ImCollections.newList(elementsToMove, destination) );
+ final String[] natures= natureIds.toArray(new String[natureIds.size()]);
final MoveArguments mArguments= new MoveArguments(destination.getModelElements().get(0),
false );
// for (final IResource resource : elementsToCopy.getResources()) {
@@ -678,7 +680,7 @@
// processor, resource, arguments, natures, shared );
// list.addAll(Arrays.asList(deletes));
// }
- for (final IModelElement element : elementsToMove.getModelElements()) {
+ for (final LtkModelElement element : elementsToMove.getModelElements()) {
final MoveParticipant[] deletes= ParticipantManager.loadMoveParticipants(status,
processor, element, mArguments, natures, shared );
list.addAll(Arrays.asList(deletes));
@@ -691,8 +693,9 @@
final RefactoringStatus status, final RefactoringProcessor processor,
final SharableParticipants shared, final ReorgExecutionLog executionLog)
throws CoreException {
- final String[] natures= ElementSet.getAffectedProjectNatures(
+ final Set<String> natureIds= ElementSet.getAffectedProjectNatures(
ImCollections.newList(elementsToCopy, destination) );
+ final String[] natures= natureIds.toArray(new String[natureIds.size()]);
final CopyArguments mArguments= new CopyArguments(destination.getModelElements().get(0),
executionLog );
// for (final IResource resource : elementsToCopy.getResources()) {
@@ -705,7 +708,7 @@
// processor, resource, arguments, natures, shared);
// list.addAll(Arrays.asList(deletes));
// }
- for (final IModelElement element : elementsToCopy.getModelElements()) {
+ for (final LtkModelElement element : elementsToCopy.getModelElements()) {
final CopyParticipant[] deletes= ParticipantManager.loadCopyParticipants(status,
processor, element,
mArguments, natures, shared);
@@ -730,12 +733,12 @@
final IResourceChangeDescriptionFactory resourceDelta) {
for (final IResource resource : elements.getResources()) {
if (resource instanceof IFile) {
- resourceDelta.change((IFile) resource);
+ resourceDelta.change((IFile)resource);
}
}
for (final IResource resource : elements.getResourcesOwnedByElements()) {
if (resource instanceof IFile) {
- resourceDelta.change((IFile) resource);
+ resourceDelta.change((IFile)resource);
}
}
for (final IFile file : elements.getFilesContainingElements()) {
@@ -815,15 +818,15 @@
for (final IResource resource : elements.getResources()) {
result.add(createChangeToDelete(elements, resource));
}
- final Map<ISourceUnit, List<IModelElement>> suSubChanges= new HashMap<>();
- for (final IModelElement element : elements.getModelElements()) {
+ final Map<SourceUnit, List<LtkModelElement>> suSubChanges= new HashMap<>();
+ for (final LtkModelElement element : elements.getModelElements()) {
final IResource resource= elements.getOwningResource(element);
if (resource != null) {
result.add(createChangeToDelete(elements, resource));
}
else {
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
- List<IModelElement> list= suSubChanges.get(su);
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
+ List<LtkModelElement> list= suSubChanges.get(su);
if (list == null) {
list= new ArrayList<>(1);
suSubChanges.put(su, list);
@@ -833,17 +836,17 @@
}
if (!suSubChanges.isEmpty()) {
m.setWorkRemaining(suSubChanges.size() * 3);
- for (final Map.Entry<ISourceUnit, List<IModelElement>> suChanges : suSubChanges.entrySet()) {
+ for (final Map.Entry<SourceUnit, List<LtkModelElement>> suChanges : suSubChanges.entrySet()) {
createChangeToDelete(elements, suChanges.getKey(), suChanges.getValue(), manager, m);
}
}
}
private void createChangeToDelete(final ElementSet elements,
- final ISourceUnit su, final List<IModelElement> elementsInUnit,
+ final SourceUnit su, final List<LtkModelElement> elementsInUnit,
final TextChangeManager manager, final SubMonitor m) throws CoreException {
- if (!(su instanceof IWorkspaceSourceUnit)
- || ((IWorkspaceSourceUnit) su).getResource().getType() != IResource.FILE ) {
+ if (!(su instanceof WorkspaceSourceUnit)
+ || ((WorkspaceSourceUnit)su).getResource().getType() != IResource.FILE ) {
throw new IllegalArgumentException();
}
su.connect(m.newChild(1));
@@ -852,8 +855,8 @@
final BasicHeuristicTokenScanner scanner= getScanner(su);
final AbstractDocument document= su.getDocument(null);
- for (final IModelElement element : elementsInUnit) {
- final ISourceElement member= (ISourceElement) element;
+ for (final LtkModelElement element : elementsInUnit) {
+ final SourceElement member= (SourceElement)element;
final TextRegion sourceRange= expandElementRange(member, document, scanner);
final DeleteEdit edit= new DeleteEdit(sourceRange.getStartOffset(), sourceRange.getLength());
rootEdit.addChild(edit);
@@ -871,7 +874,7 @@
}
}
- protected Change createChangeToDelete(final ElementSet elements, final IModelElement element) throws CoreException {
+ protected Change createChangeToDelete(final ElementSet elements, final LtkModelElement element) throws CoreException {
final IResource resource= elements.getOwningResource(element);
if (resource != null) {
return createChangeToDelete(elements, resource);
@@ -886,9 +889,9 @@
return new DeleteResourceChange(resource.getFullPath(), true);
}
- protected Change createChangeToDelete(final ElementSet elements, final ISourceUnit su) throws CoreException {
- if (su instanceof IWorkspaceSourceUnit) {
- return createChangeToDelete(elements, ((IWorkspaceSourceUnit) su).getResource());
+ protected Change createChangeToDelete(final ElementSet elements, final SourceUnit su) throws CoreException {
+ if (su instanceof WorkspaceSourceUnit) {
+ return createChangeToDelete(elements, ((WorkspaceSourceUnit)su).getResource());
}
throw new IllegalStateException();
}
@@ -897,19 +900,19 @@
protected void addChangesToInsert(final CompositeChange result, final String code,
final RefactoringDestination destination,
final TextChangeManager manager, final SubMonitor m) throws CoreException {
- final ISourceElement element= (ISourceElement) destination.getModelElements().get(0);
- final ISourceUnit su= LTKUtils.getSourceUnit(element);
+ final SourceElement element= (SourceElement)destination.getModelElements().get(0);
+ final SourceUnit su= LtkModelUtils.getSourceUnit(element);
m.setWorkRemaining(3);
createChangeToInsert(su, code, element, destination, manager, m);
}
- private void createChangeToInsert(final ISourceUnit su,
+ private void createChangeToInsert(final SourceUnit su,
final String code,
- final ISourceElement desElement, final RefactoringDestination destination,
+ final SourceElement desElement, final RefactoringDestination destination,
final TextChangeManager manager, final SubMonitor m) throws CoreException {
- if (!(su instanceof IWorkspaceSourceUnit)
- || ((IWorkspaceSourceUnit) su).getResource().getType() != IResource.FILE ) {
+ if (!(su instanceof WorkspaceSourceUnit)
+ || ((WorkspaceSourceUnit)su).getResource().getType() != IResource.FILE ) {
throw new IllegalArgumentException();
}
su.connect(m.newChild(1));
@@ -929,7 +932,7 @@
final InsertEdit edit= new InsertEdit(offset, code);
rootEdit.addChild(edit);
- ((SourceUnitChange) manager.get(su)).setInsertPosition(new Position(edit.getOffset()));
+ ((SourceUnitChange)manager.get(su)).setInsertPosition(new Position(edit.getOffset()));
m.worked(1);
}
@@ -944,7 +947,7 @@
}
}
- protected int getInsertionOffset(final AbstractDocument document, final ISourceElement element,
+ protected int getInsertionOffset(final AbstractDocument document, final SourceElement element,
final RefactoringDestination.Position pos,
final BasicHeuristicTokenScanner scanner) throws BadLocationException, BadPartitioningException {
final TextRegion range= expandElementRange(element, document, scanner);
@@ -965,24 +968,24 @@
}
}
- private MultiTextEdit getRootEdit(final TextChangeManager manager, final ISourceUnit su) {
+ private MultiTextEdit getRootEdit(final TextChangeManager manager, final SourceUnit su) {
final TextFileChange textFileChange= manager.get(su);
- if (su.getWorkingContext() == LTK.EDITOR_CONTEXT) {
+ if (su.getWorkingContext() == Ltk.EDITOR_CONTEXT) {
textFileChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
}
if (textFileChange.getEdit() == null) {
textFileChange.setEdit(new MultiTextEdit());
}
- return (MultiTextEdit) textFileChange.getEdit();
+ return (MultiTextEdit)textFileChange.getEdit();
}
protected IStatus failDocAnalyzation(final Throwable e) {
- return new Status(IStatus.ERROR, LTK.BUNDLE_ID, Messages.Common_error_AnalyzingSourceDocument_message, e);
+ return new Status(IStatus.ERROR, Ltk.BUNDLE_ID, Messages.Common_error_AnalyzingSourceDocument_message, e);
}
protected IStatus failCreation(final Throwable e) {
- return new Status(IStatus.ERROR, LTK.BUNDLE_ID, Messages.Common_error_CreatingElementChange_message, e);
+ return new Status(IStatus.ERROR, Ltk.BUNDLE_ID, Messages.Common_error_CreatingElementChange_message, e);
}
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringDestination.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringDestination.java
index 37199b0..5c0703c 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringDestination.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/RefactoringDestination.java
@@ -15,7 +15,7 @@
package org.eclipse.statet.ltk.refactoring.core;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
public class RefactoringDestination extends ElementSet {
@@ -44,7 +44,7 @@
this.position= pos;
}
- public RefactoringDestination(final ISourceElement element, final int offset) {
+ public RefactoringDestination(final SourceElement element, final int offset) {
super(element);
this.position= Position.AT;
this.offset= offset;
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/IScheduledRefactoring.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/ScheduledRefactoring.java
similarity index 89%
rename from ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/IScheduledRefactoring.java
rename to ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/ScheduledRefactoring.java
index ebf4863..f92c3e6 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/IScheduledRefactoring.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/ScheduledRefactoring.java
@@ -16,11 +16,14 @@
import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Offers optionally an scheduling rule to use when performing the refactoring.
*/
-public interface IScheduledRefactoring {
+@NonNullByDefault
+public interface ScheduledRefactoring {
/**
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/SourceUnitChange.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/SourceUnitChange.java
index 2a740b3..76c2b78 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/SourceUnitChange.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/SourceUnitChange.java
@@ -30,18 +30,18 @@
import org.eclipse.ltk.core.refactoring.TextFileChange;
import org.eclipse.text.edits.UndoEdit;
-import org.eclipse.statet.internal.ltk.core.LTKCorePlugin;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.internal.ltk.core.LtkCorePlugin;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * A {@link TextChange} for LTK {@link ISourceUnit}s.
+ * A {@link TextChange} for Ltk {@link SourceUnit}s.
*/
public final class SourceUnitChange extends TextFileChange {
- private final ISourceUnit sourceUnit;
+ private final SourceUnit sourceUnit;
private Position insertPosition;
@@ -55,8 +55,8 @@
* @param name the change's name mainly used to render the change in the UI
* @param su the compilation unit this text change works on
*/
- public SourceUnitChange(final ISourceUnit su) {
- super(su.getElementName().getDisplayName(), (IFile) su.getResource());
+ public SourceUnitChange(final SourceUnit su) {
+ super(su.getElementName().getDisplayName(), (IFile)su.getResource());
assert (su != null);
this.sourceUnit= su;
try {
@@ -80,7 +80,7 @@
*
* @return the source unit this change works on
*/
- public ISourceUnit getSourceUnit() {
+ public SourceUnit getSourceUnit() {
return this.sourceUnit;
}
@@ -133,10 +133,10 @@
@Override
protected Change createUndoChange(final UndoEdit edit, final ContentStamp stampToRestore) {
try {
- return new UndoSourceUnitChange(getName(), this.sourceUnit, (IFile) super.getModifiedElement(), edit, stampToRestore, getSaveMode());
+ return new UndoSourceUnitChange(getName(), this.sourceUnit, (IFile)super.getModifiedElement(), edit, stampToRestore, getSaveMode());
}
catch (final CoreException e) {
- LTKCorePlugin.log(new Status(IStatus.ERROR, LTKCorePlugin.BUNDLE_ID, -1,
+ LtkCorePlugin.log(new Status(IStatus.ERROR, LtkCorePlugin.BUNDLE_ID, -1,
"Failed to create Refactoring Undo", e )); //$NON-NLS-1$
return null;
}
@@ -145,7 +145,7 @@
@Override
@SuppressWarnings("unchecked")
public <T> T getAdapter(final Class<T> adapterType) {
- if (adapterType == ISourceUnit.class || adapterType == IModelElement.class) {
+ if (adapterType == SourceUnit.class || adapterType == LtkModelElement.class) {
return (T) this.sourceUnit;
}
return super.getAdapter(adapterType);
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/TextChangeManager.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/TextChangeManager.java
index b9eb73d..717a5ce 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/TextChangeManager.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/TextChangeManager.java
@@ -23,17 +23,17 @@
import org.eclipse.ltk.core.refactoring.TextChange;
import org.eclipse.ltk.core.refactoring.TextFileChange;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * A <code>TextChangeManager</code> manages associations between <code>ISourceUnit</code>
+ * A <code>TextChangeManager</code> manages associations between <code>SourceUnit</code>
* or <code>IFile</code> and <code>TextChange</code> objects.
*/
public class TextChangeManager {
- private final Map<ISourceUnit, TextFileChange> map= new HashMap<>(10);
+ private final Map<SourceUnit, TextFileChange> map= new HashMap<>(10);
private final boolean keepExecutedTextEdits;
@@ -54,7 +54,7 @@
// * @param cu the compilation unit (key)
// * @param change the change associated with the compilation unit
// */
-// public void manage(final ISourceUnit su, final TextChange change) {
+// public void manage(final SourceUnit su, final TextChange change) {
// thi.map.put(su, change);
// }
@@ -65,7 +65,7 @@
* @param su the source unit for which the text buffer change is requested
* @return the text change associated with the given source unit.
*/
- public TextFileChange get(final ISourceUnit su) {
+ public TextFileChange get(final SourceUnit su) {
TextFileChange result= this.map.get(su);
if (result == null) {
result= new SourceUnitChange(su);
@@ -82,7 +82,7 @@
* @param unit the key determining the <tt>TextChange</tt> to be removed.
* @return the removed <tt>TextChange</tt>.
*/
- public TextChange remove(final ISourceUnit unit) {
+ public TextChange remove(final SourceUnit unit) {
return this.map.remove(unit);
}
@@ -91,8 +91,8 @@
*
* @return all source units managed by this instance
*/
- public ISourceUnit[] getAllSourceUnits(){
- return this.map.keySet().toArray(new ISourceUnit[this.map.keySet().size()]);
+ public SourceUnit[] getAllSourceUnits(){
+ return this.map.keySet().toArray(new SourceUnit[this.map.keySet().size()]);
}
/**
@@ -101,11 +101,11 @@
* @return all text changes managed by this instance
*/
public TextChange[] getAllChanges(){
- final Set<ISourceUnit> suSet= this.map.keySet();
- final ISourceUnit[] sus= suSet.toArray(new ISourceUnit[suSet.size()]);
- Arrays.sort(sus, new Comparator<ISourceUnit>() {
+ final Set<SourceUnit> suSet= this.map.keySet();
+ final SourceUnit[] sus= suSet.toArray(new SourceUnit[suSet.size()]);
+ Arrays.sort(sus, new Comparator<SourceUnit>() {
@Override
- public int compare(final ISourceUnit su1, final ISourceUnit su2) {
+ public int compare(final SourceUnit su1, final SourceUnit su2) {
return su1.getId().compareTo(su2.getId());
}
});
@@ -123,7 +123,7 @@
* @param su the source unit
* @return <code>true</code> if any text changes are managed for the specified source unit and <code>false</code> otherwise
*/
- public boolean containsChangesIn(final ISourceUnit su){
+ public boolean containsChangesIn(final SourceUnit su){
return this.map.containsKey(su);
}
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/UndoSourceUnitChange.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/UndoSourceUnitChange.java
index af2ae43..db84e7b 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/UndoSourceUnitChange.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/refactoring/core/UndoSourceUnitChange.java
@@ -23,7 +23,7 @@
import org.eclipse.ltk.core.refactoring.UndoTextFileChange;
import org.eclipse.text.edits.UndoEdit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -32,10 +32,10 @@
public class UndoSourceUnitChange extends UndoTextFileChange {
- private final ISourceUnit sourceUnit;
+ private final SourceUnit sourceUnit;
- public UndoSourceUnitChange(final String name, final ISourceUnit su, final IFile file,
+ public UndoSourceUnitChange(final String name, final SourceUnit su, final IFile file,
final UndoEdit undo, final ContentStamp stampToRestore, final int saveMode) throws CoreException {
super(name, file, undo, stampToRestore, saveMode);
this.sourceUnit= su;
@@ -55,7 +55,7 @@
*/
@Override
protected Change createUndoChange(final UndoEdit edit, final ContentStamp stampToRestore) throws CoreException {
- return new UndoSourceUnitChange(getName(), this.sourceUnit, (IFile) super.getModifiedElement(), edit, stampToRestore, getSaveMode());
+ return new UndoSourceUnitChange(getName(), this.sourceUnit, (IFile)super.getModifiedElement(), edit, stampToRestore, getSaveMode());
}
/**
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/ActivatedContentTypeTester.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/ActivatedContentTypeTester.java
index 219f87b..00b603e 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/ActivatedContentTypeTester.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/ActivatedContentTypeTester.java
@@ -25,7 +25,7 @@
import org.eclipse.ui.IEditorPart;
import org.eclipse.statet.ltk.core.IExtContentTypeManager;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
/**
@@ -95,7 +95,7 @@
if (property.equals(MATCH_ACTIVATED_TYPE)) {
final String expectedContentTypeId= (String) expectedValue;
if (contentType != null) {
- return LTK.getExtContentTypeManager().matchesActivatedContentType(
+ return Ltk.getExtContentTypeManager().matchesActivatedContentType(
contentType.getId(), expectedContentTypeId, true);
}
return false;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/refactoring/ModelElementTester.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/refactoring/ModelElementTester.java
index 315ee13..73add86 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/refactoring/ModelElementTester.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/internal/ltk/ui/refactoring/ModelElementTester.java
@@ -19,9 +19,9 @@
import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.statet.ltk.core.LTKUtils;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
public class ModelElementTester extends PropertyTester {
@@ -44,10 +44,10 @@
final IStructuredSelection selection= (IStructuredSelection) receiver;
int mask= 0;
if (IS_ELEMENT_C1_TYPE_SELECTION.equals(property)) {
- mask= IModelElement.MASK_C1;
+ mask= LtkModelElement.MASK_C1;
}
else if (IS_ELEMENT_C2_TYPE_SELECTION.equals(property)) {
- mask= IModelElement.MASK_C2;
+ mask= LtkModelElement.MASK_C2;
}
int numSu= 1;
String modelType= (String) expectedValue;
@@ -63,20 +63,20 @@
final int[] types= parseInts(args);
final Iterator iter= selection.iterator();
boolean first= true;
- ISourceUnit su= null;
+ SourceUnit su= null;
ITER_ELEMENTS : while (iter.hasNext()) {
final Object obj= iter.next();
- if (obj instanceof IModelElement) {
- final IModelElement element= (IModelElement) obj;
+ if (obj instanceof LtkModelElement) {
+ final LtkModelElement element= (LtkModelElement) obj;
if (numSu == 1) {
if (first) {
first= false;
- if ((su= LTKUtils.getSourceUnit(element)) == null) {
+ if ((su= LtkModelUtils.getSourceUnit(element)) == null) {
return false;
}
}
else {
- if (su != LTKUtils.getSourceUnit(element)) {
+ if (su != LtkModelUtils.getSourceUnit(element)) {
return false;
}
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/EditorUtils.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/EditorUtils.java
index 264b286..ca0758b 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/EditorUtils.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/EditorUtils.java
@@ -39,9 +39,10 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.model.core.ISourceUnitManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.model.core.LtkModels;
+import org.eclipse.statet.ltk.model.core.SourceUnitManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -99,9 +100,9 @@
public static boolean isModelTypeEditorInput(final IEditorInput input, final String modelTypeId) {
final Object ifile= input.getAdapter(IFile.class);
- final ISourceUnitManager suManager= LTK.getSourceUnitManager();
+ final SourceUnitManager suManager= LtkModels.getSourceUnitManager();
if (ifile != null) {
- final ISourceUnit su= suManager.getSourceUnit(modelTypeId, LTK.PERSISTENCE_CONTEXT, ifile, false, null);
+ final SourceUnit su= suManager.getSourceUnit(modelTypeId, Ltk.PERSISTENCE_CONTEXT, ifile, false, null);
if (su != null) {
su.disconnect(null);
return true;
@@ -116,7 +117,7 @@
catch (final CoreException e) {
return false;
}
- final ISourceUnit su= suManager.getSourceUnit(modelTypeId, LTK.EDITOR_CONTEXT, store, false, null);
+ final SourceUnit su= suManager.getSourceUnit(modelTypeId, Ltk.EDITOR_CONTEXT, store, false, null);
if (su != null) {
su.disconnect(null);
return true;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementInfoController.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementInfoController.java
index e9b7236..eceea03 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementInfoController.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementInfoController.java
@@ -29,10 +29,10 @@
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.core.WorkingContext;
import org.eclipse.statet.ltk.model.core.ElementChangedEvent;
-import org.eclipse.statet.ltk.model.core.IElementChangedListener;
-import org.eclipse.statet.ltk.model.core.IModelElementDelta;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.ElementChangedListener;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -43,16 +43,16 @@
private static int NEWINPUT_DELAY= 100;
- private final IModelManager modelProvider;
+ private final ModelManager modelProvider;
private final WorkingContext modelContext;
- private final IElementChangedListener elementChangeListener;
+ private final ElementChangedListener elementChangeListener;
private final CopyOnWriteIdentityListSet<IModelElementInputListener> listenerList= new CopyOnWriteIdentityListSet<>();
private final CopyOnWriteIdentityListSet<IModelElementInputListener> newListenerList= new CopyOnWriteIdentityListSet<>();
private final Object inputLock= new Object();
- private volatile ISourceUnit input;
- private ISourceUnit newInput;
+ private volatile SourceUnit input;
+ private SourceUnit newInput;
private final NewInputUpdater newInputJob= new NewInputUpdater();
private class NewInputUpdater extends Job implements ISchedulingRule {
@@ -77,7 +77,7 @@
@Override
protected IStatus run(final IProgressMonitor monitor) {
- ISourceUnit input;
+ SourceUnit input;
ImIdentityList<IModelElementInputListener> listeners;
synchronized (ElementInfoController.this.inputLock) {
if (monitor.isCanceled()
@@ -115,11 +115,11 @@
private final IProgressMonitor notifyMonitor= new NullProgressMonitor();
- public ElementInfoController(final IModelManager manager, final WorkingContext context) {
- this.elementChangeListener= new IElementChangedListener() {
+ public ElementInfoController(final ModelManager manager, final WorkingContext context) {
+ this.elementChangeListener= new ElementChangedListener() {
@Override
public void elementChanged(final ElementChangedEvent event) {
- ISourceUnit input;
+ SourceUnit input;
ImIdentityList<IModelElementInputListener> listeners;
synchronized (ElementInfoController.this.inputLock) {
if (ElementInfoController.this.newInput != null && ElementInfoController.this.newInput.equals(event.delta.getModelElement())) {
@@ -157,7 +157,7 @@
}
- public void setInput(final ISourceUnit input) {
+ public void setInput(final SourceUnit input) {
synchronized (this.inputLock) {
this.input= null;
this.newInput= input;
@@ -178,13 +178,13 @@
return listeners;
}
- private void notifyChanged(final ImIdentityList<IModelElementInputListener> listeners, final ISourceUnit input) {
+ private void notifyChanged(final ImIdentityList<IModelElementInputListener> listeners, final SourceUnit input) {
for (final IModelElementInputListener listener : listeners) {
listener.elementChanged(input);
}
}
- private void notifyInitial(final ImIdentityList<IModelElementInputListener> listeners, final ISourceUnit input,
+ private void notifyInitial(final ImIdentityList<IModelElementInputListener> listeners, final SourceUnit input,
final IProgressMonitor monitor) {
if (listeners.isEmpty() || input != this.input) {
return;
@@ -203,7 +203,7 @@
}
}
- private void notifyUpdated(final ImIdentityList<IModelElementInputListener> listeners, final ISourceUnit input, final IModelElementDelta delta,
+ private void notifyUpdated(final ImIdentityList<IModelElementInputListener> listeners, final SourceUnit input, final LtkModelElementDelta delta,
final IProgressMonitor monitor) {
if (input != this.input) {
return;
@@ -223,14 +223,14 @@
}
@Override
- public ISourceUnit getInput() {
+ public SourceUnit getInput() {
return this.input;
}
@Override
public void addListener(final IModelElementInputListener listener) {
synchronized (this.inputLock) {
- ISourceUnit input= this.newInput;
+ SourceUnit input= this.newInput;
if (input == null) {
input= this.input;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementLabelProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementLabelProvider.java
index 649fe3d..3cb6a6f 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementLabelProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementLabelProvider.java
@@ -23,11 +23,11 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
/**
- * Label provider for objects of the type {@link IModelElement}.
+ * Label provider for objects of the type {@link LtkModelElement}.
*/
@NonNullByDefault
public interface ElementLabelProvider {
@@ -41,19 +41,19 @@
};
- String getText(final IModelElement element);
+ String getText(final LtkModelElement element);
-// void decorateText(final StringBuilder text, final IModelElement element);
+// void decorateText(final StringBuilder text, final LtkModelElement element);
- StyledString getStyledText(final IModelElement element);
+ StyledString getStyledText(final LtkModelElement element);
- default int @Nullable [] getStyledTextRegions(final IModelElement element,
+ default int @Nullable [] getStyledTextRegions(final LtkModelElement element,
final int flags, final int[] regions) {
return null;
}
-// void decorateStyledText(final StyledString text, final IModelElement element);
+// void decorateStyledText(final StyledString text, final LtkModelElement element);
- Image getImage(final IModelElement element);
+ Image getImage(final LtkModelElement element);
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementNameComparator.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementNameComparator.java
index acaac23..3d735ad 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementNameComparator.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/ElementNameComparator.java
@@ -20,11 +20,11 @@
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.statet.ltk.core.ElementName;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
-public class ElementNameComparator extends ViewerComparator implements Comparator<IModelElement> {
+public class ElementNameComparator extends ViewerComparator implements Comparator<LtkModelElement> {
public ElementNameComparator(final Comparator<? super ElementName> nameComparator) {
@@ -34,21 +34,21 @@
@Override
public int category(final Object element) {
- return category((IModelElement) element);
+ return category((LtkModelElement) element);
}
- public int category(final IModelElement element) {
- switch (element.getElementType() & IModelElement.MASK_C1) {
- case IModelElement.C1_IMPORT:
+ public int category(final LtkModelElement element) {
+ switch (element.getElementType() & LtkModelElement.MASK_C1) {
+ case LtkModelElement.C1_IMPORT:
return 1;
- case IModelElement.C1_CLASS:
+ case LtkModelElement.C1_CLASS:
return 2;
}
return 100;
}
@Override
- public int compare(final IModelElement e1, final IModelElement e2) {
+ public int compare(final LtkModelElement e1, final LtkModelElement e2) {
final int c1= category(e1);
final int c2= category(e2);
if (c1 != c2) {
@@ -59,25 +59,25 @@
if (result != 0) {
return result;
}
- if (e1 instanceof ISourceStructElement && e2 instanceof ISourceStructElement) {
- return ((ISourceStructElement) e1).getSourceRange().getStartOffset()
- - ((ISourceStructElement) e2).getSourceRange().getStartOffset();
+ if (e1 instanceof SourceStructElement && e2 instanceof SourceStructElement) {
+ return ((SourceStructElement) e1).getSourceRange().getStartOffset()
+ - ((SourceStructElement) e2).getSourceRange().getStartOffset();
}
return 0;
}
@Override
public int compare(final Viewer viewer, final Object e1, final Object e2) {
- if (e1 instanceof IModelElement) {
- if (e2 instanceof IModelElement) {
- return compare((IModelElement) e1, (IModelElement) e2);
+ if (e1 instanceof LtkModelElement) {
+ if (e2 instanceof LtkModelElement) {
+ return compare((LtkModelElement) e1, (LtkModelElement) e2);
}
else {
return Integer.MIN_VALUE;
}
}
else {
- if (e2 instanceof IModelElement) {
+ if (e2 instanceof LtkModelElement) {
return Integer.MAX_VALUE;
}
else {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/FileBufferWorkingBuffer.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/FileBufferWorkingBuffer.java
index 1ba6b42..bb73f97 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/FileBufferWorkingBuffer.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/FileBufferWorkingBuffer.java
@@ -25,18 +25,21 @@
import org.eclipse.jface.text.DocumentRewriteSession;
import org.eclipse.jface.text.ISynchronizable;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.ui.util.UIAccess;
import org.eclipse.statet.internal.ltk.ui.LTKUIPlugin;
-import org.eclipse.statet.ltk.model.core.SourceDocumentRunnable;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceDocumentRunnable;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * WorkingBuffer using {@link ITextFileBuffer}.
+ * BasicWorkingBuffer using {@link ITextFileBuffer}.
* <p>
* Usually used for editors / the editor context.</p>
*/
+@NonNullByDefault
public class FileBufferWorkingBuffer extends org.eclipse.statet.ltk.model.core.impl.FileBufferWorkingBuffer {
@@ -87,7 +90,7 @@
}
- public FileBufferWorkingBuffer(final ISourceUnit unit) {
+ public FileBufferWorkingBuffer(final SourceUnit unit) {
super(unit);
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/GenericEditorWorkspaceSourceUnitWorkingCopy2.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/GenericEditorWorkspaceSourceUnitWorkingCopy2.java
index d73ecc9..72460ac 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/GenericEditorWorkspaceSourceUnitWorkingCopy2.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/GenericEditorWorkspaceSourceUnitWorkingCopy2.java
@@ -19,47 +19,52 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.IMarkerPositionResolver;
import org.eclipse.statet.ecommons.text.ui.AnnotationMarkerPositionResolver;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.core.WorkingContext;
-import org.eclipse.statet.ltk.model.core.SourceDocumentRunnable;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.model.core.build.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.element.SourceDocumentRunnable;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
import org.eclipse.statet.ltk.model.core.impl.GenericSourceUnitWorkingCopy2;
-import org.eclipse.statet.ltk.model.core.impl.IWorkingBuffer;
-import org.eclipse.statet.ltk.model.core.impl.SourceUnitModelContainer;
+import org.eclipse.statet.ltk.model.core.impl.WorkingBuffer;
-public abstract class GenericEditorWorkspaceSourceUnitWorkingCopy2<M extends SourceUnitModelContainer<? extends ISourceUnit, ? extends ISourceUnitModelInfo>>
- extends GenericSourceUnitWorkingCopy2<M>
- implements IWorkspaceSourceUnit {
+@NonNullByDefault
+public abstract class GenericEditorWorkspaceSourceUnitWorkingCopy2<
+ TModelContainer extends SourceUnitModelContainer<? extends SourceUnit, ? extends SourceUnitModelInfo>>
+ extends GenericSourceUnitWorkingCopy2<TModelContainer>
+ implements WorkspaceSourceUnit {
- public GenericEditorWorkspaceSourceUnitWorkingCopy2(final IWorkspaceSourceUnit from) {
+ public GenericEditorWorkspaceSourceUnitWorkingCopy2(final WorkspaceSourceUnit from) {
super(from);
}
@Override
public WorkingContext getWorkingContext() {
- return LTK.EDITOR_CONTEXT;
+ return Ltk.EDITOR_CONTEXT;
}
@Override
public IResource getResource() {
- return ((IWorkspaceSourceUnit) getUnderlyingUnit()).getResource();
+ return ((WorkspaceSourceUnit) getUnderlyingUnit()).getResource();
}
@Override
- public IMarkerPositionResolver getMarkerPositionResolver() {
+ public @Nullable IMarkerPositionResolver getMarkerPositionResolver() {
return AnnotationMarkerPositionResolver.createIfRequired(getResource());
}
@Override
- protected IWorkingBuffer createWorkingBuffer(final SubMonitor m) {
+ protected WorkingBuffer createWorkingBuffer(final SubMonitor m) {
return new FileBufferWorkingBuffer(this);
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputListener.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputListener.java
index d1592b2..73e173b 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputListener.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputListener.java
@@ -14,12 +14,12 @@
package org.eclipse.statet.ltk.ui;
-import org.eclipse.statet.ltk.model.core.IModelElementDelta;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
/**
- * Interface to listen to changes of object input of the type {@link IModelElement}.
+ * Interface to listen to changes of object input of the type {@link LtkModelElement}.
*
* @see IModelElementInputProvider
*/
@@ -30,18 +30,18 @@
* The element of the provider has changed.
*
* Directly called while changing the input.
- * For longer tasks, wait for {@link #elementInitialInfo(IModelElement)}.
+ * For longer tasks, wait for {@link #elementInitialInfo(LtkModelElement)}.
*/
- public void elementChanged(IModelElement element);
+ public void elementChanged(LtkModelElement element);
/**
* First detail info for the element.
*/
- public void elementInitialInfo(IModelElement element);
+ public void elementInitialInfo(LtkModelElement element);
/**
* Detail info changed.
*/
- public void elementUpdatedInfo(IModelElement element, IModelElementDelta delta);
+ public void elementUpdatedInfo(LtkModelElement element, LtkModelElementDelta delta);
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputProvider.java
index f0a0792..810cdba 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/IModelElementInputProvider.java
@@ -14,16 +14,16 @@
package org.eclipse.statet.ltk.ui;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
- * Object having an {@link ISourceUnit} as input.
+ * Object having an {@link SourceUnit} as input.
*/
public interface IModelElementInputProvider {
- public abstract ISourceUnit getInput();
+ public abstract SourceUnit getInput();
public abstract void addListener(IModelElementInputListener listener);
public abstract void removeListener(IModelElementInputListener listener);
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKInputData.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKInputData.java
index 28a5ada..b26a5bf 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKInputData.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKInputData.java
@@ -21,12 +21,12 @@
import org.eclipse.ui.part.ShowInContext;
import org.eclipse.statet.ltk.ast.core.util.AstSelection;
-import org.eclipse.statet.ltk.core.LTKUtils;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
/**
@@ -37,21 +37,21 @@
public class LTKInputData implements ISelection {
- protected ISourceUnit inputElement;
- protected ISourceUnitModelInfo inputInfo;
+ protected SourceUnit inputElement;
+ protected SourceUnitModelInfo inputInfo;
protected ISelectionProvider selectionProvider;
protected ISelection selection;
protected AstSelection astSelection;
- protected ISourceStructElement modelSelection;
+ protected SourceStructElement modelSelection;
- public LTKInputData(final ISourceUnit inputElement, final ISelection selection) {
+ public LTKInputData(final SourceUnit inputElement, final ISelection selection) {
this.inputElement= inputElement;
this.selection= selection;
}
- public LTKInputData(final ISourceUnit inputElement, final ISelectionProvider selectionProvider) {
+ public LTKInputData(final SourceUnit inputElement, final ISelectionProvider selectionProvider) {
this.inputElement= inputElement;
this.selectionProvider= selectionProvider;
this.selection= selectionProvider.getSelection();
@@ -70,13 +70,13 @@
return false;
}
- public IModelElement getInputElement() {
+ public LtkModelElement getInputElement() {
return this.inputElement;
}
- public ISourceUnitModelInfo getInputInfo() {
+ public SourceUnitModelInfo getInputInfo() {
if (this.inputInfo == null) {
- this.inputInfo= this.inputElement.getModelInfo(null, IModelManager.NONE, new NullProgressMonitor());
+ this.inputInfo= this.inputElement.getModelInfo(null, ModelManager.NONE, new NullProgressMonitor());
}
return this.inputInfo;
}
@@ -103,11 +103,11 @@
return this.astSelection;
}
- public ISourceStructElement getModelSelection() {
+ public SourceStructElement getModelSelection() {
if (this.modelSelection == null) {
if (this.selection instanceof ITextSelection && getInputInfo() != null) {
final ITextSelection textSelection= (ITextSelection) this.selection;
- this.modelSelection= LTKUtils.getCoveringSourceElement(getInputInfo().getSourceElement(), textSelection.getOffset(), textSelection.getOffset()+textSelection.getLength());
+ this.modelSelection= LtkModelUtils.getCoveringSourceElement(getInputInfo().getSourceElement(), textSelection.getOffset(), textSelection.getOffset()+textSelection.getLength());
}
}
return this.modelSelection;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKUIPreferences.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKUIPreferences.java
index 92975ee..d6e02ed 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKUIPreferences.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/LTKUIPreferences.java
@@ -45,7 +45,7 @@
}
- public static final String ASSIST_GROUP_ID= "LTK/assist"; //$NON-NLS-1$
+ public static final String ASSIST_GROUP_ID= "Ltk/assist"; //$NON-NLS-1$
public static final String ASSIST_PREF_QUALIFIER= LTKUIPlugin.BUNDLE_ID + "/assist"; //$NON-NLS-1$
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/PostSelectionWithElementInfoController.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/PostSelectionWithElementInfoController.java
index 462e117..5d107bd 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/PostSelectionWithElementInfoController.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/PostSelectionWithElementInfoController.java
@@ -30,9 +30,9 @@
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.internal.ltk.ui.LTKUIPlugin;
-import org.eclipse.statet.ltk.model.core.IModelElementDelta;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -50,7 +50,7 @@
int stateNr;
- Data(final ISourceUnit input, final SelectionChangedEvent currentSelection, final int runNr) {
+ Data(final SourceUnit input, final SelectionChangedEvent currentSelection, final int runNr) {
super(input, (currentSelection != null) ? currentSelection.getSelection() : null);
this.stateNr= runNr;
}
@@ -77,7 +77,7 @@
@Override
protected synchronized IStatus run(final IProgressMonitor monitor) {
- ISourceUnit input= null;
+ SourceUnit input= null;
try {
checkNewInput();
@@ -109,7 +109,7 @@
input.connect(monitor);
}
if (run.getInputInfo() == null
- || run.getInputInfo().getStamp().getSourceStamp() != input.getDocument(null).getModificationStamp()) {
+ || run.getInputInfo().getStamp().getContentStamp() != input.getDocument(null).getModificationStamp()) {
return Status.OK_STATUS;
}
@@ -222,7 +222,7 @@
private final List<IgnoreActivation> ignoreList= new ArrayList<>();
- private ISourceUnit input; // current input
+ private SourceUnit input; // current input
private boolean inputChanged;
private SelectionChangedEvent currentSelection; // current selection
private volatile int currentNr; // stamp to check, if information still up-to-date
@@ -238,12 +238,12 @@
this.elementChangeListener= new IModelElementInputListener() {
@Override
- public void elementChanged(final IModelElement element) {
+ public void elementChanged(final LtkModelElement element) {
synchronized (PostSelectionWithElementInfoController.this.inputLock) {
if (PostSelectionWithElementInfoController.this.updateJob.getState() == Job.WAITING) {
PostSelectionWithElementInfoController.this.updateJob.cancel();
}
- PostSelectionWithElementInfoController.this.input= (ISourceUnit) element;
+ PostSelectionWithElementInfoController.this.input= (SourceUnit) element;
PostSelectionWithElementInfoController.this.inputChanged= true;
PostSelectionWithElementInfoController.this.currentNr++;
PostSelectionWithElementInfoController.this.currentSelection= null;
@@ -251,14 +251,14 @@
}
}
@Override
- public void elementInitialInfo(final IModelElement element) {
+ public void elementInitialInfo(final LtkModelElement element) {
checkUpdate(element);
}
@Override
- public void elementUpdatedInfo(final IModelElement element, final IModelElementDelta delta) {
+ public void elementUpdatedInfo(final LtkModelElement element, final LtkModelElementDelta delta) {
checkUpdate(element);
}
- private void checkUpdate(final IModelElement element) {
+ private void checkUpdate(final LtkModelElement element) {
synchronized (PostSelectionWithElementInfoController.this.inputLock) {
PostSelectionWithElementInfoController.this.currentNr++;
if (PostSelectionWithElementInfoController.this.currentSelection == null) {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyElementsHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyElementsHandler.java
index 8516c8a..25001a5 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyElementsHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyElementsHandler.java
@@ -25,7 +25,7 @@
import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
import org.eclipse.statet.internal.ltk.ui.refactoring.Messages;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
import org.eclipse.statet.ltk.refactoring.core.RefactoringAdapter;
import org.eclipse.statet.ltk.ui.util.LTKSelectionUtils;
@@ -56,7 +56,7 @@
if (selection == null || selection.isEmpty()) {
return null;
}
- final ISourceStructElement[] sourceElements= LTKSelectionUtils.getSelectedSourceStructElements(selection);
+ final SourceStructElement[] sourceElements= LTKSelectionUtils.getSelectedSourceStructElements(selection);
if (sourceElements != null) {
final RefactoringAdapter adapter= this.refactoring.createAdapter(sourceElements);
if (adapter == null) {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyNamesHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyNamesHandler.java
index cf37e9f..a5db9d1 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyNamesHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CopyNamesHandler.java
@@ -28,7 +28,7 @@
import org.eclipse.statet.ecommons.ui.util.UIAccess;
import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
@@ -87,8 +87,8 @@
}
protected String getName(final Object o) {
- if (o instanceof IModelElement) {
- return ((IModelElement) o).getElementName().getDisplayName();
+ if (o instanceof LtkModelElement) {
+ return ((LtkModelElement) o).getElementName().getDisplayName();
}
return null;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CutElementsHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CutElementsHandler.java
index 0f0406d..441f5fd 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CutElementsHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/CutElementsHandler.java
@@ -36,7 +36,7 @@
import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
import org.eclipse.statet.internal.ltk.ui.refactoring.Messages;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
import org.eclipse.statet.ltk.refactoring.core.RefactoringAdapter;
import org.eclipse.statet.ltk.ui.util.LTKSelectionUtils;
@@ -73,7 +73,7 @@
if (selection == null || selection.isEmpty()) {
return null;
}
- final ISourceStructElement[] sourceElements= LTKSelectionUtils.getSelectedSourceStructElements(selection);
+ final SourceStructElement[] sourceElements= LTKSelectionUtils.getSelectedSourceStructElements(selection);
if (sourceElements != null) {
final RefactoringAdapter adapter= this.refactoring.createAdapter(sourceElements);
if (adapter == null) {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/DeleteElementsHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/DeleteElementsHandler.java
index 718b073..d64ff6c 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/DeleteElementsHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/DeleteElementsHandler.java
@@ -35,7 +35,7 @@
import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
import org.eclipse.statet.internal.ltk.ui.refactoring.Messages;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
import org.eclipse.statet.ltk.refactoring.core.RefactoringAdapter;
import org.eclipse.statet.ltk.ui.util.LTKSelectionUtils;
@@ -72,7 +72,7 @@
if (selection == null || selection.isEmpty()) {
return null;
}
- final ISourceStructElement[] sourceElements= LTKSelectionUtils.getSelectedSourceStructElements(selection);
+ final SourceStructElement[] sourceElements= LTKSelectionUtils.getSelectedSourceStructElements(selection);
if (sourceElements != null) {
final RefactoringAdapter adapter= this.refactoring.createAdapter(sourceElements);
if (adapter == null) {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/PasteElementsHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/PasteElementsHandler.java
index 5fd01de..daa9641 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/PasteElementsHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/PasteElementsHandler.java
@@ -39,9 +39,9 @@
import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
import org.eclipse.statet.internal.ltk.ui.refactoring.Messages;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
import org.eclipse.statet.ltk.refactoring.core.RefactoringAdapter;
import org.eclipse.statet.ltk.refactoring.core.RefactoringDestination;
@@ -80,7 +80,7 @@
if (selection == null) {
return null;
}
- final ISourceUnit su= this.editor.getSourceUnit();
+ final SourceUnit su= this.editor.getSourceUnit();
if (su == null) {
return null;
}
@@ -88,7 +88,7 @@
if (selection instanceof IStructuredSelection) {
final IProgressMonitor monitor= new NullProgressMonitor();
final IStructuredSelection structuredSelection= (IStructuredSelection) selection;
- final ISourceUnitModelInfo modelInfo= su.getModelInfo(null, IModelManager.MODEL_FILE,
+ final SourceUnitModelInfo modelInfo= su.getModelInfo(null, ModelManager.MODEL_FILE,
monitor );
if (modelInfo == null) {
return null;
@@ -138,7 +138,7 @@
}
private Position startInsertRefactoring(final String code, final RefactoringDestination destination,
- final ISourceUnit su, final RefactoringAdapter adapter,
+ final SourceUnit su, final RefactoringAdapter adapter,
final Shell shell, final IProgressService context)
throws InvocationTargetException, InterruptedException {
final RefactoringProcessor processor= this.refactoring.createPasteProcessor(code, destination, adapter);
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/RefactoringExecutionHelper.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/RefactoringExecutionHelper.java
index 34ba9ac..dbdc4e4 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/RefactoringExecutionHelper.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/refactoring/RefactoringExecutionHelper.java
@@ -45,8 +45,8 @@
import org.eclipse.ui.progress.IProgressService;
import org.eclipse.statet.internal.ltk.ui.refactoring.Messages;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.refactoring.core.IScheduledRefactoring;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.refactoring.core.ScheduledRefactoring;
import org.eclipse.statet.ltk.refactoring.core.SourceUnitChange;
@@ -65,7 +65,7 @@
private final Shell parent;
private final int stopSeverity;
- private ISourceUnit insertPositionSourceUnit;
+ private SourceUnit insertPositionSourceUnit;
private Position insertPosition;
@@ -106,8 +106,8 @@
final IJobManager manager= Job.getJobManager();
final Thread workingThread= Thread.currentThread();
- final ISchedulingRule rule= (RefactoringExecutionHelper.this.refactoring instanceof IScheduledRefactoring) ?
- ((IScheduledRefactoring) RefactoringExecutionHelper.this.refactoring).getSchedulingRule() :
+ final ISchedulingRule rule= (RefactoringExecutionHelper.this.refactoring instanceof ScheduledRefactoring) ?
+ ((ScheduledRefactoring) RefactoringExecutionHelper.this.refactoring).getSchedulingRule() :
ResourcesPlugin.getWorkspace().getRoot();
manager.beginRule(rule, m.newChild(1));
@@ -242,7 +242,7 @@
- public void enableInsertPosition(final ISourceUnit su) {
+ public void enableInsertPosition(final SourceUnit su) {
this.insertPositionSourceUnit= su;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/AbstractMarkOccurrencesProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/AbstractMarkOccurrencesProvider.java
index 710ba87..03cae24 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/AbstractMarkOccurrencesProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/AbstractMarkOccurrencesProvider.java
@@ -33,10 +33,10 @@
import org.eclipse.statet.ecommons.text.core.PartitionConstraint;
import org.eclipse.statet.ltk.ast.core.util.AstSelection;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.ISelectionWithElementInfoListener;
import org.eclipse.statet.ltk.ui.LTKInputData;
@@ -53,7 +53,7 @@
public final class RunData {
public final AbstractDocument doc;
- public ISourceModelStamp stamp;
+ public SourceModelStamp stamp;
private Annotation[] annotations;
private Point range;
@@ -62,7 +62,7 @@
private Map<Annotation, Position> todo;
- RunData(final AbstractDocument doc, final ISourceModelStamp stamp) {
+ RunData(final AbstractDocument doc, final SourceModelStamp stamp) {
this.doc= doc;
this.stamp= stamp;
}
@@ -72,7 +72,7 @@
final Point currentSelection= AbstractMarkOccurrencesProvider.this.editor.currentSelection;
return (this.range != null && currentSelection.x >= this.range.x
&& currentSelection.x+currentSelection.y <= this.range.y
- && this.doc.getModificationStamp() == this.stamp.getSourceStamp() );
+ && this.doc.getModificationStamp() == this.stamp.getContentStamp() );
}
public boolean accept(final Point range) {
@@ -144,7 +144,7 @@
@Override
public void stateChanged(final LTKInputData state) {
final ISelection selection= state.getSelection();
- final boolean ok= update((ISourceUnit) state.getInputElement(), state.getAstSelection(),
+ final boolean ok= update((SourceUnit) state.getInputElement(), state.getAstSelection(),
(selection instanceof ITextSelection) ? (ITextSelection) selection : null );
if (!ok && state.isStillValid()) {
removeAnnotations();
@@ -157,14 +157,14 @@
* @return <code>true</code> if the annotation is ok (still valid or updated),
* otherwise <code>false</code>
*/
- protected boolean update(final ISourceUnit inputElement, final AstSelection astSelection,
+ protected boolean update(final SourceUnit inputElement, final AstSelection astSelection,
final ITextSelection orgSelection) {
if (!this.isMarkEnabled) {
return false;
}
try {
- final ISourceUnitModelInfo info= inputElement.getModelInfo(this.editor.getModelTypeId(),
- IModelManager.NONE, new NullProgressMonitor() );
+ final SourceUnitModelInfo info= inputElement.getModelInfo(this.editor.getModelTypeId(),
+ ModelManager.NONE, new NullProgressMonitor() );
if (this.editor.getSourceUnit() != inputElement || info == null || astSelection == null) {
return false;
}
@@ -204,7 +204,7 @@
return false;
}
- protected abstract void doUpdate(RunData run, ISourceUnitModelInfo info,
+ protected abstract void doUpdate(RunData run, SourceUnitModelInfo info,
AstSelection astSelection, ITextSelection orgSelection)
throws BadLocationException, BadPartitioningException, UnsupportedOperationException;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EcoReconciler2.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EcoReconciler2.java
index 90c9773..6a8dbbb 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EcoReconciler2.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EcoReconciler2.java
@@ -38,7 +38,7 @@
import org.eclipse.statet.jcommons.collections.CopyOnWriteIdentityListSet;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -49,7 +49,7 @@
public static interface ISourceUnitStrategy {
- void setInput(ISourceUnit su);
+ void setInput(SourceUnit su);
}
@@ -174,7 +174,7 @@
private volatile boolean isEditorVisible;
/** The current source unit */
- private ISourceUnit sourceUnit;
+ private SourceUnit sourceUnit;
private final CopyOnWriteIdentityListSet<StrategyEntry> strategies= new CopyOnWriteIdentityListSet<>();
@@ -322,7 +322,7 @@
protected void processReconcile(final IProgressMonitor monitor) {
final IDocument document= getDocument();
- final ISourceUnit input= this.sourceUnit;
+ final SourceUnit input= this.sourceUnit;
if (document == null || input == null) {
return;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EditorTextInfoHoverProxy.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EditorTextInfoHoverProxy.java
index b041bc1..60c3372 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EditorTextInfoHoverProxy.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/EditorTextInfoHoverProxy.java
@@ -50,7 +50,7 @@
/**
- * Wraps an LTK {@link InfoHover} to an editor text hover.
+ * Wraps an Ltk {@link InfoHover} to an editor text hover.
*/
@NonNullByDefault
public abstract class EditorTextInfoHoverProxy implements ITextHover, ITextHoverExtension, ITextHoverExtension2 {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ForwardSourceDocumentProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ForwardSourceDocumentProvider.java
index cec7877..a82f945 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ForwardSourceDocumentProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ForwardSourceDocumentProvider.java
@@ -34,17 +34,21 @@
import org.eclipse.ui.texteditor.IDocumentProviderExtension5;
import org.eclipse.ui.texteditor.IElementStateListener;
-import org.eclipse.statet.ltk.model.core.IDocumentModelProvider;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ltk.model.core.DocumentModelProvider;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
* Forward provider for {@link SourceDocumentProvider}s allowing special document setup
* (similar to {@link org.eclipse.ui.editors.text.ForwardingDocumentProvider}).
*/
+@NonNullByDefault
public class ForwardSourceDocumentProvider implements IDocumentProvider,
IDocumentProviderExtension, IDocumentProviderExtension2, IDocumentProviderExtension3, IDocumentProviderExtension4, IDocumentProviderExtension5,
- IStorageDocumentProvider, IDocumentModelProvider {
+ IStorageDocumentProvider, DocumentModelProvider {
private final SourceDocumentProvider<?> parentProvider;
@@ -89,17 +93,17 @@
}
@Override
- public IDocument getDocument(final Object element) {
+ public @Nullable IDocument getDocument(final @Nullable Object element) {
return this.parentProvider.getDocument(element);
}
@Override
- public void resetDocument(final Object element) throws CoreException {
+ public void resetDocument(final @Nullable Object element) throws CoreException {
this.parentProvider.resetDocument(element);
}
@Override
- public void saveDocument(final IProgressMonitor monitor, final Object element,
+ public void saveDocument(final @Nullable IProgressMonitor monitor, final @Nullable Object element,
final IDocument document, final boolean overwrite) throws CoreException {
this.parentProvider.saveDocument(monitor, element, document, overwrite);
}
@@ -115,32 +119,32 @@
}
@Override
- public boolean isDeleted(final Object element) {
+ public boolean isDeleted(final @Nullable Object element) {
return this.parentProvider.isDeleted(element);
}
@Override
- public boolean mustSaveDocument(final Object element) {
+ public boolean mustSaveDocument(final @Nullable Object element) {
return this.parentProvider.mustSaveDocument(element);
}
@Override
- public boolean canSaveDocument(final Object element) {
+ public boolean canSaveDocument(final @Nullable Object element) {
return this.parentProvider.canSaveDocument(element);
}
@Override
- public IAnnotationModel getAnnotationModel(final Object element) {
+ public @Nullable IAnnotationModel getAnnotationModel(final @Nullable Object element) {
return this.parentProvider.getAnnotationModel(element);
}
@Override
- public void aboutToChange(final Object element) {
+ public void aboutToChange(final @Nullable Object element) {
this.parentProvider.aboutToChange(element);
}
@Override
- public void changed(final Object element) {
+ public void changed(final @Nullable Object element) {
this.parentProvider.changed(element);
}
@@ -165,7 +169,7 @@
}
@Override
- public void validateState(final Object element, final Object computationContext) throws CoreException {
+ public void validateState(final Object element, final @Nullable Object computationContext) throws CoreException {
this.parentProvider.validateState(element, computationContext);
}
@@ -190,13 +194,13 @@
}
@Override
- public void synchronize(final Object element) throws CoreException {
- this.parentProvider.synchronize(element);
+ public boolean isSynchronized(final Object element) {
+ return this.parentProvider.isSynchronized(element);
}
@Override
- public void setProgressMonitor(final IProgressMonitor progressMonitor) {
- this.parentProvider.setProgressMonitor(progressMonitor);
+ public void synchronize(final Object element) throws CoreException {
+ this.parentProvider.synchronize(element);
}
@Override
@@ -205,12 +209,12 @@
}
@Override
- public boolean isSynchronized(final Object element) {
- return this.parentProvider.isSynchronized(element);
+ public void setProgressMonitor(final IProgressMonitor progressMonitor) {
+ this.parentProvider.setProgressMonitor(progressMonitor);
}
@Override
- public IContentType getContentType(final Object element) throws CoreException {
+ public @Nullable IContentType getContentType(final Object element) throws CoreException {
return this.parentProvider.getContentType(element);
}
@@ -226,18 +230,18 @@
}
@Override
- public String getEncoding(final Object element) {
+ public @Nullable String getEncoding(final Object element) {
return this.parentProvider.getEncoding(element);
}
@Override
- public void setEncoding(final Object element, final String encoding) {
+ public void setEncoding(final Object element, final @Nullable String encoding) {
this.parentProvider.setEncoding(element, encoding);
}
@Override
- public ISourceUnit getWorkingCopy(final Object element) {
+ public @Nullable SourceUnit getWorkingCopy(final Object element) {
return this.parentProvider.getWorkingCopy(element);
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/FragmentDocumentProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/FragmentDocumentProvider.java
index 9237e2f..5abca45 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/FragmentDocumentProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/FragmentDocumentProvider.java
@@ -25,21 +25,26 @@
import org.eclipse.jface.text.source.IAnnotationModel;
import org.eclipse.ui.texteditor.AbstractDocumentProvider;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.ISourceFragment;
import org.eclipse.statet.ecommons.text.PartitionerDocumentSetupParticipant;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.model.core.IDocumentModelProvider;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.model.core.DocumentModelProvider;
+import org.eclipse.statet.ltk.model.core.LtkModels;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+@NonNullByDefault
public class FragmentDocumentProvider extends AbstractDocumentProvider
- implements IDocumentModelProvider {
+ implements DocumentModelProvider {
public class SourceElementInfo extends ElementInfo {
- private ISourceUnit workingCopy;
+ private @Nullable SourceUnit workingCopy;
public SourceElementInfo(final IDocument document, final IAnnotationModel model) {
super(document, model);
@@ -64,15 +69,15 @@
@Override
- protected ElementInfo createElementInfo(final Object element) throws CoreException {
- ISourceUnit su= null;
+ protected @Nullable ElementInfo createElementInfo(final Object element) throws CoreException {
+ SourceUnit su= null;
AbstractDocument document= null;
if (element instanceof ISourceFragmentEditorInput) {
final ISourceFragmentEditorInput fragmentInput= ((ISourceFragmentEditorInput) element);
final SubMonitor m= SubMonitor.convert(getProgressMonitor(), 2);
try {
- su= LTK.getSourceUnitManager().getSourceUnit(this.modelTypeId, LTK.EDITOR_CONTEXT,
+ su= LtkModels.getSourceUnitManager().getSourceUnit(this.modelTypeId, Ltk.EDITOR_CONTEXT,
fragmentInput.getSourceFragment(), true, m.newChild(1));
document= su.getDocument(m.newChild(1));
}
@@ -94,7 +99,7 @@
}
@Override
- protected AbstractDocument createDocument(final Object element) throws CoreException {
+ protected @Nullable AbstractDocument createDocument(final Object element) throws CoreException {
if (element instanceof ISourceFragmentEditorInput) {
final ISourceFragment fragment= ((ISourceFragmentEditorInput) element).getSourceFragment();
return fragment.getDocument();
@@ -114,12 +119,12 @@
}
@Override
- protected IRunnableContext getOperationRunner(final IProgressMonitor monitor) {
+ protected @Nullable IRunnableContext getOperationRunner(final @Nullable IProgressMonitor monitor) {
return null;
}
@Override
- protected void doSaveDocument(final IProgressMonitor monitor, final Object element,
+ protected void doSaveDocument(final @Nullable IProgressMonitor monitor, final Object element,
final IDocument document, final boolean overwrite) throws CoreException {
}
@@ -140,8 +145,8 @@
}
@Override
- public ISourceUnit getWorkingCopy(final Object element) {
- final SourceElementInfo info= (SourceElementInfo) getElementInfo(element);
+ public @Nullable SourceUnit getWorkingCopy(final Object element) {
+ final SourceElementInfo info= (SourceElementInfo)getElementInfo(element);
if (info != null) {
return info.workingCopy;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ISourceEditor.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ISourceEditor.java
index f615bea..e5e6694 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ISourceEditor.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ISourceEditor.java
@@ -27,7 +27,7 @@
import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.util.LTKSelectionUtils;
@@ -50,7 +50,7 @@
*
* @return model element or <code>null</code>
*/
- @Nullable ISourceUnit getSourceUnit();
+ @Nullable SourceUnit getSourceUnit();
/**
* Returns the part the editor belongs to
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/OutlineContentProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/OutlineContentProvider.java
index b5523ad..5abad95 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/OutlineContentProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/OutlineContentProvider.java
@@ -19,10 +19,10 @@
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement.Filter;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementFilter;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
public class OutlineContentProvider implements ITreeContentProvider {
@@ -30,9 +30,9 @@
public interface IOutlineContent {
- ISourceUnitModelInfo getModelInfo(Object inputElement);
+ SourceUnitModelInfo getModelInfo(Object inputElement);
- Filter getContentFilter();
+ LtkModelElementFilter getContentFilter();
}
@@ -49,8 +49,8 @@
return this.content;
}
- public ISourceModelStamp getStamp(final Object inputElement) {
- final ISourceUnitModelInfo modelInfo= getContent().getModelInfo(inputElement);
+ public SourceModelStamp getStamp(final Object inputElement) {
+ final SourceUnitModelInfo modelInfo= getContent().getModelInfo(inputElement);
return (modelInfo != null) ? modelInfo.getStamp() : null;
}
@@ -60,12 +60,12 @@
@Override
public Object[] getElements(final Object inputElement) {
- final ISourceUnitModelInfo modelInfo= getContent().getModelInfo(inputElement);
+ final SourceUnitModelInfo modelInfo= getContent().getModelInfo(inputElement);
if (modelInfo != null) {
- final List<? extends ISourceStructElement> children= modelInfo.getSourceElement().getSourceChildren(getContent().getContentFilter());
- return children.toArray(new ISourceStructElement[children.size()]);
+ final List<? extends SourceStructElement> children= modelInfo.getSourceElement().getSourceChildren(getContent().getContentFilter());
+ return children.toArray(new SourceStructElement[children.size()]);
}
- return new ISourceStructElement[0];
+ return new SourceStructElement[0];
}
@Override
@@ -74,25 +74,25 @@
@Override
public Object getParent(final Object element) {
- final ISourceStructElement o= (ISourceStructElement) element;
+ final SourceStructElement o= (SourceStructElement) element;
return o.getSourceParent();
}
@Override
public boolean hasChildren(final Object element) {
- final ISourceStructElement o= (ISourceStructElement) element;
+ final SourceStructElement o= (SourceStructElement) element;
return o.hasSourceChildren(getContent().getContentFilter());
}
@Override
public Object[] getChildren(final Object parentElement) {
// Check required for E bug #438919
- if (parentElement instanceof ISourceStructElement) {
- final ISourceStructElement o= (ISourceStructElement) parentElement;
- final List<? extends ISourceStructElement> children= o.getSourceChildren(getContent().getContentFilter());
- return children.toArray(new ISourceStructElement[children.size()]);
+ if (parentElement instanceof SourceStructElement) {
+ final SourceStructElement o= (SourceStructElement) parentElement;
+ final List<? extends SourceStructElement> children= o.getSourceChildren(getContent().getContentFilter());
+ return children.toArray(new SourceStructElement[children.size()]);
}
- return new ISourceStructElement[0];
+ return new SourceStructElement[0];
}
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickInformationProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickInformationProvider.java
index 234b90e..907e74b 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickInformationProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickInformationProvider.java
@@ -25,10 +25,10 @@
import org.eclipse.statet.ecommons.text.core.JFaceTextRegion;
-import org.eclipse.statet.ltk.core.LTKUtils;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.LTKUI;
@@ -98,16 +98,16 @@
@Override
public Object getInformation2(final ITextViewer textViewer, final IRegion subject) {
- final ISourceUnit su= this.editor.getSourceUnit();
+ final SourceUnit su= this.editor.getSourceUnit();
if (su == null) {
return null;
}
- final ISourceUnitModelInfo modelInfo= su.getModelInfo(getModelTypeId(), IModelManager.MODEL_FILE,
+ final SourceUnitModelInfo modelInfo= su.getModelInfo(getModelTypeId(), ModelManager.MODEL_FILE,
new NullProgressMonitor() ); // ?
if (modelInfo == null) {
return null;
}
- return LTKUtils.getCoveringSourceElement(modelInfo.getSourceElement(),
+ return LtkModelUtils.getCoveringSourceElement(modelInfo.getSourceElement(),
JFaceTextRegion.toTextRegion(subject) );
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickOutlineInformationControl.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickOutlineInformationControl.java
index 32464f6..bd2f62e 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickOutlineInformationControl.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/QuickOutlineInformationControl.java
@@ -25,11 +25,11 @@
import org.eclipse.statet.ecommons.ui.dialogs.QuickTreeInformationControl;
import org.eclipse.statet.internal.ltk.ui.LTKUIPlugin;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement.Filter;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementFilter;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.LTKUI;
import org.eclipse.statet.ltk.ui.sourceediting.actions.OpenDeclaration;
@@ -51,11 +51,11 @@
@Override
- public ISourceUnitModelInfo getModelInfo(final Object input) {
+ public SourceUnitModelInfo getModelInfo(final Object input) {
return QuickOutlineInformationControl.this.getModelInfo(input);
}
@Override
- public Filter getContentFilter() {
+ public LtkModelElementFilter getContentFilter() {
return QuickOutlineInformationControl.this.getContentFilter();
}
@@ -112,8 +112,8 @@
@Override
protected String getElementName(final IAdaptable element) {
- if (element instanceof IModelElement && !this.requireFullName) {
- return ((IModelElement) element).getElementName().getSegmentName();
+ if (element instanceof LtkModelElement && !this.requireFullName) {
+ return ((LtkModelElement) element).getElementName().getSegmentName();
}
return super.getElementName(element);
}
@@ -129,27 +129,27 @@
return new OutlineContentProvider(new OutlineContent());
}
- protected ISourceUnitModelInfo getModelInfo(final Object input) {
- if (input instanceof ISourceUnit) {
- return ((ISourceUnit) input).getModelInfo(getModelTypeId(), 0, null);
+ protected SourceUnitModelInfo getModelInfo(final Object input) {
+ if (input instanceof SourceUnit) {
+ return ((SourceUnit) input).getModelInfo(getModelTypeId(), 0, null);
}
return null;
}
- protected IModelElement.Filter getContentFilter() {
+ protected LtkModelElementFilter getContentFilter() {
return null;
}
- protected int getInitialIterationPage(final ISourceElement element) {
+ protected int getInitialIterationPage(final SourceElement element) {
return 0;
}
@Override
public void setInput(final Object information) {
- if (information instanceof ISourceElement) {
- final ISourceElement element= (ISourceElement) information;
- final ISourceUnit su= element.getSourceUnit();
+ if (information instanceof SourceElement) {
+ final SourceElement element= (SourceElement) information;
+ final SourceUnit su= element.getSourceUnit();
if (su != null) {
inputChanged(getInitialIterationPage(element), su, element);
return;
@@ -161,8 +161,8 @@
@Override
protected void openElement(final Object element) throws CoreException {
- if (element instanceof ISourceElement) {
- this.opener.open((ISourceElement) element, true);
+ if (element instanceof SourceElement) {
+ this.opener.open((SourceElement) element, true);
}
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceAnnotationModel.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceAnnotationModel.java
index 2fde916..4550f18 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceAnnotationModel.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceAnnotationModel.java
@@ -24,6 +24,9 @@
import org.eclipse.jface.text.Position;
import org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ltk.issues.core.Problem;
import org.eclipse.statet.ltk.issues.core.ProblemRequestor;
@@ -32,6 +35,7 @@
* Abstract annotation model dealing with marker annotations and temporary problems.
* Also acts as problem requester for its source unit.
*/
+@NonNullByDefault
public abstract class SourceAnnotationModel extends ResourceMarkerAnnotationModel {
@@ -111,7 +115,7 @@
return new SourceAnnotationProblemRequestor();
}
- public void clearProblems(final String category) {
+ public void clearProblems(final @Nullable String category) {
synchronized (getLockObject()) {
if (this.problemAnnotations.size() > 0) {
if (category == null) {
@@ -227,7 +231,7 @@
return new Position(start, end-start);
}
- protected SourceProblemAnnotation createAnnotation(final Problem problem) {
+ protected @Nullable SourceProblemAnnotation createAnnotation(final Problem problem) {
return null;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceDocumentProvider.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceDocumentProvider.java
index b67cd5a..add7915 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceDocumentProvider.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceDocumentProvider.java
@@ -27,23 +27,28 @@
import org.eclipse.ui.editors.text.TextFileDocumentProvider;
import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.text.PartitionerDocumentSetupParticipant;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.issues.core.ProblemRequestor;
-import org.eclipse.statet.ltk.model.core.IDocumentModelProvider;
-import org.eclipse.statet.ltk.model.core.ISourceUnitManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.model.core.DocumentModelProvider;
+import org.eclipse.statet.ltk.model.core.LtkModels;
+import org.eclipse.statet.ltk.model.core.SourceUnitManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
-public class SourceDocumentProvider<T extends ISourceUnit> extends TextFileDocumentProvider
- implements IDocumentModelProvider {
+@NonNullByDefault
+public class SourceDocumentProvider<T extends SourceUnit> extends TextFileDocumentProvider
+ implements DocumentModelProvider {
public static class SourceFileInfo extends FileInfo {
- private ISourceUnit workingCopy;
+ private @Nullable SourceUnit workingCopy;
}
@@ -89,7 +94,7 @@
}
@Override
- protected FileInfo createFileInfo(final Object element) throws CoreException {
+ protected @Nullable FileInfo createFileInfo(final Object element) throws CoreException {
final FileInfo info= super.createFileInfo(element);
if (!(info instanceof SourceFileInfo)) {
@@ -108,11 +113,13 @@
final SubMonitor m= SubMonitor.convert(getProgressMonitor());
try {
final Object ifile= adaptable.getAdapter(IFile.class);
- final ISourceUnitManager suManager= LTK.getSourceUnitManager();
+ final SourceUnitManager suManager= LtkModels.getSourceUnitManager();
if (ifile != null) {
m.setWorkRemaining(2);
- final ISourceUnit pUnit= suManager.getSourceUnit(this.modelTypeId, LTK.PERSISTENCE_CONTEXT, ifile, true, m.newChild(1));
- sourceInfo.workingCopy= suManager.getSourceUnit(this.modelTypeId, LTK.EDITOR_CONTEXT, pUnit, true, m.newChild(1));
+ final SourceUnit pUnit= suManager.getSourceUnit(this.modelTypeId, Ltk.PERSISTENCE_CONTEXT,
+ ifile, true, m.newChild(1) );
+ sourceInfo.workingCopy= suManager.getSourceUnit(this.modelTypeId, Ltk.EDITOR_CONTEXT,
+ pUnit, true, m.newChild(1) );
}
else if (element instanceof IURIEditorInput) {
m.setWorkRemaining(1);
@@ -123,7 +130,8 @@
catch (final CoreException e) {
return sourceInfo;
}
- sourceInfo.workingCopy= suManager.getSourceUnit(this.modelTypeId, LTK.EDITOR_CONTEXT, store, true, m.newChild(1));
+ sourceInfo.workingCopy= suManager.getSourceUnit(this.modelTypeId, Ltk.EDITOR_CONTEXT,
+ store, true, m.newChild(1) );
}
}
finally {
@@ -140,23 +148,23 @@
}
@Override
- public T getWorkingCopy(final Object element) {
+ public @Nullable T getWorkingCopy(final Object element) {
final FileInfo fileInfo= getFileInfo(element);
if (fileInfo instanceof SourceFileInfo) {
- return (T) ((SourceFileInfo) fileInfo).workingCopy;
+ return (T)((SourceFileInfo)fileInfo).workingCopy;
}
return null;
}
@Override
- public IAnnotationModel getAnnotationModel(Object element) {
- if (element instanceof IWorkspaceSourceUnit) {
- element= new FileEditorInput((IFile) ((IWorkspaceSourceUnit) element).getResource());
+ public @Nullable IAnnotationModel getAnnotationModel(@Nullable Object element) {
+ if (element instanceof WorkspaceSourceUnit) {
+ element= new FileEditorInput((IFile)((WorkspaceSourceUnit)element).getResource());
}
return super.getAnnotationModel(element);
}
- public ProblemRequestor createProblemRequestor(final ISourceUnit element) {
+ public @Nullable ProblemRequestor createProblemRequestor(final SourceUnit element) {
final IAnnotationModel annotationModel= getAnnotationModel(element);
if (annotationModel instanceof SourceAnnotationModel) {
return ((SourceAnnotationModel) annotationModel).createProblemRequestor();
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1.java
index ca720fc..14a4c86 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1.java
@@ -97,14 +97,14 @@
import org.eclipse.statet.internal.ltk.ui.EditingMessages;
import org.eclipse.statet.ltk.ast.core.AstNode;
-import org.eclipse.statet.ltk.core.IModelTypeDescriptor;
-import org.eclipse.statet.ltk.core.LTK;
-import org.eclipse.statet.ltk.model.core.IDocumentModelProvider;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.model.core.DocumentModelProvider;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.ModelTypeDescriptor;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.ElementInfoController;
import org.eclipse.statet.ltk.ui.IModelElementInputProvider;
import org.eclipse.statet.ltk.ui.ISelectionWithElementInfoListener;
@@ -241,11 +241,11 @@
/*- Fields -----------------------------------------------------------------*/
private final IContentType contentType;
- private final IModelTypeDescriptor modelType;
+ private final ModelTypeDescriptor modelType;
private SourceEditorViewerConfigurator configurator;
private boolean lazySetup;
- private ISourceUnit sourceUnit;
+ private SourceUnit sourceUnit;
private ElementInfoController modelProvider;
private PostSelectionWithElementInfoController modelPostSelection;
protected volatile Point currentSelection;
@@ -281,7 +281,7 @@
public SourceEditor1(final IContentType contentType) {
super();
this.contentType= contentType;
- this.modelType= LTK.getExtContentTypeManager().getModelTypeForContentType(contentType.getId());
+ this.modelType= Ltk.getExtContentTypeManager().getModelTypeForContentType(contentType.getId());
}
@@ -325,10 +325,10 @@
}
- protected void enableStructuralFeatures(final IModelManager modelManager,
+ protected void enableStructuralFeatures(final ModelManager modelManager,
final Preference<Boolean> codeFoldingEnablement,
final Preference<Boolean> markOccurrencesEnablement) {
- this.modelProvider= new ElementInfoController(modelManager, LTK.EDITOR_CONTEXT);
+ this.modelProvider= new ElementInfoController(modelManager, Ltk.EDITOR_CONTEXT);
this.foldingEnablement= codeFoldingEnablement;
this.markOccurrencesEnablement= markOccurrencesEnablement;
}
@@ -469,8 +469,10 @@
*/
protected void setupConfiguration(final IEditorInput newInput) {
final IDocumentProvider documentProvider= getDocumentProvider();
- if (documentProvider instanceof IDocumentModelProvider) {
- this.sourceUnit= ((IDocumentModelProvider) documentProvider).getWorkingCopy(newInput);
+ if (documentProvider instanceof DocumentModelProvider) {
+ this.sourceUnit= (newInput != null) ?
+ ((DocumentModelProvider)documentProvider).getWorkingCopy(newInput) :
+ null;
if (this.modelProvider != null) {
this.modelProvider.setInput(this.sourceUnit);
}
@@ -485,7 +487,7 @@
}
@Override
- public ISourceUnit getSourceUnit() {
+ public SourceUnit getSourceUnit() {
return this.sourceUnit;
}
@@ -630,12 +632,12 @@
return 0;
}
- protected IRegion getRangeToReveal(final ISourceUnitModelInfo modelInfo, final ISourceStructElement element) {
+ protected IRegion getRangeToReveal(final SourceUnitModelInfo modelInfo, final SourceStructElement element) {
return null;
}
protected TextRegion getRangeToHighlight(final LTKInputData state) {
- final ISourceUnitModelInfo info= state.getInputInfo();
+ final SourceUnitModelInfo info= state.getInputInfo();
if (info == null) {
return null;
}
@@ -664,19 +666,19 @@
return null;
}
- protected TextRegion getRangeToHighlight(final ISourceUnitModelInfo info, ISourceStructElement element) {
+ protected TextRegion getRangeToHighlight(final SourceUnitModelInfo info, SourceStructElement element) {
while (element != null) {
- switch (element.getElementType() & IModelElement.MASK_C1) {
- case IModelElement.C1_CLASS:
- case IModelElement.C1_METHOD:
+ switch (element.getElementType() & LtkModelElement.MASK_C1) {
+ case LtkModelElement.C1_CLASS:
+ case LtkModelElement.C1_METHOD:
return expand(element.getSourceRange(), element.getDocumentationRange());
- case IModelElement.C1_SOURCE:
- if ((element.getElementType() & IModelElement.MASK_C2) == IModelElement.C2_SOURCE_CHUNK) {
+ case LtkModelElement.C1_SOURCE:
+ if ((element.getElementType() & LtkModelElement.MASK_C2) == LtkModelElement.C2_SOURCE_CHUNK) {
return expand(element.getSourceRange(), element.getDocumentationRange());
}
return null;
- case IModelElement.C1_VARIABLE:
- if ((element.getSourceParent().getElementType() & IModelElement.MASK_C2) == IModelElement.C2_SOURCE_FILE) {
+ case LtkModelElement.C1_VARIABLE:
+ if ((element.getSourceParent().getElementType() & LtkModelElement.MASK_C2) == LtkModelElement.C2_SOURCE_FILE) {
return expand(element.getSourceRange(), element.getDocumentationRange());
}
//$FALL-THROUGH$
@@ -1063,8 +1065,8 @@
if (!structured.isEmpty()) {
final Object first= structured.getFirstElement();
TextRegion region= null;
- if (first instanceof ISourceStructElement) {
- final ISourceStructElement sourceElement= (ISourceStructElement) first;
+ if (first instanceof SourceStructElement) {
+ final SourceStructElement sourceElement= (SourceStructElement) first;
region= sourceElement.getNameSourceRange();
if (region == null) {
region= sourceElement.getSourceRange();
@@ -1073,8 +1075,8 @@
}
}
- final ISourceUnit sourceUnit= sourceElement.getSourceUnit();
- final ISourceUnitModelInfo modelInfo= sourceUnit.getModelInfo(getModelTypeId(), 0, null);
+ final SourceUnit sourceUnit= sourceElement.getSourceUnit();
+ final SourceUnitModelInfo modelInfo= sourceUnit.getModelInfo(getModelTypeId(), 0, null);
if (modelInfo != null) {
final IRegion toReveal= getRangeToReveal(modelInfo, sourceElement);
if (toReveal != null) {
@@ -1145,7 +1147,7 @@
public ShowInContext getShowInContext() {
final Point selectionPoint= this.currentSelection;
final ISourceViewer sourceViewer= getSourceViewer();
- final ISourceUnit unit= getSourceUnit();
+ final SourceUnit unit= getSourceUnit();
ISelection selection= null;
if (selectionPoint != null && unit != null && sourceViewer != null) {
selection= new LTKInputData(unit, getSelectionProvider());
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1OutlinePage.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1OutlinePage.java
index 564116d..a0a344f 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1OutlinePage.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor1OutlinePage.java
@@ -51,13 +51,13 @@
import org.eclipse.statet.internal.ltk.ui.EditingMessages;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
-import org.eclipse.statet.ltk.model.core.IModelElementDelta;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement.Filter;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementFilter;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.IModelElementInputListener;
import org.eclipse.statet.ltk.ui.ISelectionWithElementInfoListener;
import org.eclipse.statet.ltk.ui.LTKInputData;
@@ -80,11 +80,11 @@
@Override
- public ISourceUnitModelInfo getModelInfo(final Object input) {
+ public SourceUnitModelInfo getModelInfo(final Object input) {
return SourceEditor1OutlinePage.this.getModelInfo(input);
}
@Override
- public Filter getContentFilter() {
+ public LtkModelElementFilter getContentFilter() {
return SourceEditor1OutlinePage.this.getContentFilter();
}
@@ -99,9 +99,9 @@
@Override
- public ISourceModelStamp getStamp(final Object inputElement) {
- if (inputElement instanceof ISourceUnit) {
- final AstInfo ast= ((ISourceUnit) inputElement).getAstInfo(SourceEditor1OutlinePage.this.mainType, false, null);
+ public SourceModelStamp getStamp(final Object inputElement) {
+ if (inputElement instanceof SourceUnit) {
+ final AstInfo ast= ((SourceUnit) inputElement).getAstInfo(SourceEditor1OutlinePage.this.mainType, false, null);
if (ast != null) {
return ast.getStamp();
}
@@ -111,8 +111,8 @@
@Override
public Object[] getElements(final Object inputElement) {
- if (inputElement instanceof ISourceUnit) {
- final AstInfo ast= ((ISourceUnit) inputElement).getAstInfo(SourceEditor1OutlinePage.this.mainType, false, null);
+ if (inputElement instanceof SourceUnit) {
+ final AstInfo ast= ((SourceUnit) inputElement).getAstInfo(SourceEditor1OutlinePage.this.mainType, false, null);
if (ast != null) {
SourceEditor1OutlinePage.this.currentModelStamp= ast.getStamp();
return new Object[] { ast.getRoot() };
@@ -219,9 +219,9 @@
private final String mainType;
private OutlineContentProvider contentProvider;
- private ISourceModelStamp currentModelStamp;
+ private SourceModelStamp currentModelStamp;
- private IModelElement inputUnit;
+ private LtkModelElement inputUnit;
private SyncWithEditorAction syncWithEditorAction;
@@ -245,12 +245,12 @@
pageSite.setSelectionProvider(this);
}
- protected boolean isUpToDate(final ISourceModelStamp stamp) {
- final ISourceModelStamp current= this.currentModelStamp;
+ protected boolean isUpToDate(final SourceModelStamp stamp) {
+ final SourceModelStamp current= this.currentModelStamp;
return (current != null && current.equals(stamp));
}
- protected IModelElement.Filter getContentFilter() {
+ protected LtkModelElementFilter getContentFilter() {
return null;
}
@@ -309,7 +309,7 @@
@Override
- public void elementChanged(final IModelElement element) {
+ public void elementChanged(final LtkModelElement element) {
this.inputUnit= element;
this.currentModelStamp= null;
final TreeViewer viewer= getViewer();
@@ -319,12 +319,12 @@
}
@Override
- public void elementInitialInfo(final IModelElement element) {
+ public void elementInitialInfo(final LtkModelElement element) {
elementUpdatedInfo(element, null);
}
@Override
- public void elementUpdatedInfo(final IModelElement element, final IModelElementDelta delta) {
+ public void elementUpdatedInfo(final LtkModelElement element, final LtkModelElementDelta delta) {
if (element != this.inputUnit || (element == null && this.inputUnit == null)) {
return;
}
@@ -350,9 +350,9 @@
});
}
- protected ISourceUnitModelInfo getModelInfo(final Object input) {
- if (input instanceof ISourceUnit) {
- return ((ISourceUnit) input).getModelInfo(this.mainType, 0, null);
+ protected SourceUnitModelInfo getModelInfo(final Object input) {
+ if (input instanceof SourceUnit) {
+ return ((SourceUnit) input).getModelInfo(this.mainType, 0, null);
}
return null;
}
@@ -372,19 +372,19 @@
this.editor.setSelection(selection, this.syncWithEditorAction);
}
- protected void select(ISourceStructElement element) {
+ protected void select(SourceStructElement element) {
final TreeViewer viewer= getViewer();
if (UIAccess.isOkToUse(viewer)) {
beginIgnoreSelection();
try {
- final Filter filter= getContentFilter();
+ final LtkModelElementFilter filter= getContentFilter();
Object selectedElement= null;
final IStructuredSelection currentSelection= ((IStructuredSelection) viewer.getSelection());
if (currentSelection.size() == 1) {
selectedElement= currentSelection.getFirstElement();
}
while (element != null
- && (element.getElementType() & IModelElement.MASK_C2) != IModelElement.C2_SOURCE_FILE) {
+ && (element.getElementType() & LtkModelElement.MASK_C2) != LtkModelElement.C2_SOURCE_FILE) {
if (selectedElement != null && element.equals(selectedElement)) {
return;
}
@@ -395,9 +395,9 @@
return;
}
}
- final IModelElement parent= element.getSourceParent();
- if (parent instanceof ISourceStructElement) {
- element= (ISourceStructElement) parent;
+ final LtkModelElement parent= element.getSourceParent();
+ if (parent instanceof SourceStructElement) {
+ element= (SourceStructElement) parent;
continue;
}
else {
@@ -427,7 +427,7 @@
@Override
public boolean show(final ShowInContext context) {
- final IModelElement inputUnit= this.inputUnit;
+ final LtkModelElement inputUnit= this.inputUnit;
final ISelection selection= context.getSelection();
if (selection instanceof LTKInputData) {
final LTKInputData data= (LTKInputData) selection;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor2OutlinePage.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor2OutlinePage.java
index 31e6914..013a2c2 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor2OutlinePage.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditor2OutlinePage.java
@@ -32,7 +32,7 @@
import org.eclipse.statet.ecommons.ui.actions.HandlerCollection;
import org.eclipse.statet.internal.ltk.ui.EditingMessages;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
import org.eclipse.statet.ltk.refactoring.core.RefactoringAdapter;
import org.eclipse.statet.ltk.ui.refactoring.AbstractElementsHandler;
@@ -59,7 +59,7 @@
@Override
public void run() {
- final ISourceStructElement[] elements= LTKSelectionUtils.getSelectedSourceStructElements(getSelection());
+ final SourceStructElement[] elements= LTKSelectionUtils.getSelectedSourceStructElements(getSelection());
if (elements != null) {
RefactoringAdapter adapter= SourceEditor2OutlinePage.this.refactoring.createAdapter(elements);
if (adapter == null) {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditorProgressHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditorProgressHandler.java
index bb1e591..9cd0350 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditorProgressHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceEditorProgressHandler.java
@@ -30,7 +30,7 @@
import org.eclipse.statet.internal.ltk.ui.EditingMessages;
import org.eclipse.statet.internal.ltk.ui.LTKUIPlugin;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
public abstract class SourceEditorProgressHandler extends AbstractHandler {
@@ -69,7 +69,7 @@
if (!editor.isEditable(true)) {
return null;
}
- final ISourceUnit su= editor.getSourceUnit();
+ final SourceUnit su= editor.getSourceUnit();
final ITextSelection selection= (ITextSelection) editor.getViewer().getSelection();
if (su == null || selection == null) {
return null;
@@ -98,7 +98,7 @@
}
- protected abstract void doExecute(ISourceEditor editor, ISourceUnit su,
+ protected abstract void doExecute(ISourceEditor editor, SourceUnit su,
ITextSelection selection, IProgressMonitor monitor) throws Exception;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceUnitReconcilingStrategy.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceUnitReconcilingStrategy.java
index 9ae4503..694bf9d 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceUnitReconcilingStrategy.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/SourceUnitReconcilingStrategy.java
@@ -21,15 +21,15 @@
import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
import org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.EcoReconciler2.ISourceUnitStrategy;
public class SourceUnitReconcilingStrategy implements IReconcilingStrategy, IReconcilingStrategyExtension, ISourceUnitStrategy {
- private ISourceUnit input;
+ private SourceUnit input;
private final int flags;
@@ -37,7 +37,7 @@
public SourceUnitReconcilingStrategy() {
- this(IModelManager.MODEL_DEPENDENCIES | IModelManager.RECONCILE);
+ this(ModelManager.MODEL_DEPENDENCIES | ModelManager.RECONCILE);
}
public SourceUnitReconcilingStrategy(final int flags) {
@@ -55,7 +55,7 @@
}
@Override
- public void setInput(final ISourceUnit input) {
+ public void setInput(final SourceUnit input) {
this.input= input;
}
@@ -76,7 +76,7 @@
protected void reconcile() {
- final ISourceUnit su= this.input;
+ final SourceUnit su= this.input;
if (this.monitor.isCanceled()) {
return;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/StructureSelectHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/StructureSelectHandler.java
index 621c7fe..a195ba6 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/StructureSelectHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/StructureSelectHandler.java
@@ -25,7 +25,7 @@
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.util.AstSelection;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -106,7 +106,7 @@
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
- final ISourceUnit su= this.sourceEditor.getSourceUnit();
+ final SourceUnit su= this.sourceEditor.getSourceUnit();
if (su == null) {
return null;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ViewerSourceEditorAdapter.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ViewerSourceEditorAdapter.java
index 12f56b7..99bda3a 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ViewerSourceEditorAdapter.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/ViewerSourceEditorAdapter.java
@@ -22,7 +22,7 @@
import org.eclipse.statet.ecommons.text.core.sections.DocContentSections;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
/**
@@ -54,7 +54,7 @@
}
@Override
- public ISourceUnit getSourceUnit() {
+ public SourceUnit getSourceUnit() {
return null;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/AbstractSourceDocumentHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/AbstractSourceDocumentHandler.java
index 818dc48..c2a7d17 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/AbstractSourceDocumentHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/AbstractSourceDocumentHandler.java
@@ -41,14 +41,14 @@
import org.eclipse.statet.internal.ltk.ui.EditingMessages;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditorAssociated;
import org.eclipse.statet.ltk.ui.util.LTKSelectionUtils;
-public abstract class AbstractSourceDocumentHandler<TSourceUnit extends ISourceUnit>
+public abstract class AbstractSourceDocumentHandler<TSourceUnit extends SourceUnit>
extends AbstractHandler {
@@ -117,14 +117,14 @@
final ISourceEditor sourceEditor= getSourceEditor(activePart);
if (sourceEditor != null && selection instanceof ITextSelection) {
- final ISourceUnit sourceUnit= sourceEditor.getSourceUnit();
+ final SourceUnit sourceUnit= sourceEditor.getSourceUnit();
setBaseEnabled(sourceUnit != null &&
(!isEditTask() || sourceEditor.isEditable(false) ));
return;
}
if (selection instanceof IStructuredSelection) {
- final ISourceStructElement[] selectedElements= LTKSelectionUtils
+ final SourceStructElement[] selectedElements= LTKSelectionUtils
.getSelectedSourceStructElements((IStructuredSelection) selection);
setBaseEnabled(selectedElements != null && selectedElements.length > 0
&& checkSourceUnits(selectedElements) );
@@ -143,7 +143,7 @@
try {
final IProgressMonitor monitor= new NullProgressMonitor();
if (sourceEditor != null && selection instanceof ITextSelection) {
- final ISourceUnit sourceUnit= sourceEditor.getSourceUnit();
+ final SourceUnit sourceUnit= sourceEditor.getSourceUnit();
if (sourceUnit != null && isSourceUnitSupported(sourceUnit)) {
if (!isEditTask() || sourceEditor.isEditable(true)) {
final ExecData data= createExecData(event, activePart, sourceEditor,
@@ -158,7 +158,7 @@
return null;
}
if (selection instanceof IStructuredSelection) {
- final ISourceStructElement[] selectedElements= LTKSelectionUtils
+ final SourceStructElement[] selectedElements= LTKSelectionUtils
.getSelectedSourceStructElements((IStructuredSelection) selection);
if (selectedElements != null && selectedElements.length > 0) {
final ImList<TSourceUnit> sourceUnits= createSourceUnits(selectedElements, monitor);
@@ -200,11 +200,11 @@
return null;
}
- private boolean checkSourceUnits(final ISourceStructElement[] selectedElements) {
- ISourceUnit lastSourceUnit= null;
- List<ISourceUnit> sourceUnits= null;
+ private boolean checkSourceUnits(final SourceStructElement[] selectedElements) {
+ SourceUnit lastSourceUnit= null;
+ List<SourceUnit> sourceUnits= null;
for (int i= 0; i < selectedElements.length; i++) {
- final ISourceUnit sourceUnit= selectedElements[i].getSourceUnit();
+ final SourceUnit sourceUnit= selectedElements[i].getSourceUnit();
if (sourceUnit == null) {
return false;
}
@@ -234,12 +234,12 @@
return true;
}
- private ImList<TSourceUnit> createSourceUnits(final ISourceStructElement[] selectedElements,
+ private ImList<TSourceUnit> createSourceUnits(final SourceStructElement[] selectedElements,
final IProgressMonitor monitor) {
TSourceUnit lastSourceUnit= null;
List<TSourceUnit> sourceUnits= null;
for (int i= 0; i < selectedElements.length; i++) {
- final ISourceUnit sourceUnit= selectedElements[i].getSourceUnit();
+ final SourceUnit sourceUnit= selectedElements[i].getSourceUnit();
if (sourceUnit == null) {
return null;
}
@@ -318,7 +318,7 @@
}
- protected abstract boolean isSourceUnitSupported(final ISourceUnit sourceUnit);
+ protected abstract boolean isSourceUnitSupported(final SourceUnit sourceUnit);
protected boolean isMultiSourceUnitsSupported() {
return false;
@@ -326,7 +326,7 @@
protected ExecData createExecData(final ExecutionEvent event, final IWorkbenchPart activePart,
final ISourceEditor sourceEditor, final ImList<? extends TSourceUnit> sourceUnits,
- final ITextSelection textSelection, final ISourceStructElement[] selectedElements,
+ final ITextSelection textSelection, final SourceStructElement[] selectedElements,
final IProgressMonitor monitor) throws Exception {
return new ExecData(activePart, sourceEditor, sourceUnits, textSelection,
(selectedElements != null) ? new ElementSet(selectedElements) : null );
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/OpenDeclaration.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/OpenDeclaration.java
index fc978c1..c56d486 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/OpenDeclaration.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/actions/OpenDeclaration.java
@@ -39,10 +39,10 @@
import org.eclipse.statet.ecommons.ui.util.UIAccess;
import org.eclipse.statet.ltk.ast.core.AstNode;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.NameAccess;
+import org.eclipse.statet.ltk.model.core.element.NameAccess;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -93,10 +93,10 @@
return new LabelProvider();
}
- public void open(final ISourceElement element, final boolean activate) throws PartInitException {
- final ISourceUnit su= element.getSourceUnit();
- if (su instanceof IWorkspaceSourceUnit) {
- final IResource resource= ((IWorkspaceSourceUnit) su).getResource();
+ public void open(final SourceElement element, final boolean activate) throws PartInitException {
+ final SourceUnit su= element.getSourceUnit();
+ if (su instanceof WorkspaceSourceUnit) {
+ final IResource resource= ((WorkspaceSourceUnit) su).getResource();
if (resource.getType() == IResource.FILE) {
open((IFile) resource, activate, element.getNameSourceRange());
return;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistInvocationContext.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistInvocationContext.java
index 10882e6..d8f3328 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistInvocationContext.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/AssistInvocationContext.java
@@ -31,8 +31,8 @@
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.ast.core.util.AstSelection;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -51,9 +51,9 @@
private @Nullable String invocationPrefix;
- private final @Nullable ISourceUnit sourceUnit;
+ private final @Nullable SourceUnit sourceUnit;
private @Nullable AstInfo astInfo;
- private @Nullable ISourceUnitModelInfo modelInfo;
+ private @Nullable SourceUnitModelInfo modelInfo;
private @Nullable AstSelection invocationAstSelection;
private @Nullable AstSelection astSelection;
@@ -257,7 +257,7 @@
}
- public @Nullable ISourceUnit getSourceUnit() {
+ public @Nullable SourceUnit getSourceUnit() {
return this.sourceUnit;
}
@@ -265,7 +265,7 @@
return this.astInfo;
}
- public @Nullable ISourceUnitModelInfo getModelInfo() {
+ public @Nullable SourceUnitModelInfo getModelInfo() {
return this.modelInfo;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ContentAssistProcessor.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ContentAssistProcessor.java
index 105b5d8..29586bf 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ContentAssistProcessor.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ContentAssistProcessor.java
@@ -50,7 +50,7 @@
import org.eclipse.statet.ecommons.ui.util.UIAccess;
import org.eclipse.statet.internal.ltk.ui.EditingMessages;
-import org.eclipse.statet.ltk.core.LTK;
+import org.eclipse.statet.ltk.core.Ltk;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -367,7 +367,7 @@
computer.computeCompletionProposals(context, mode, proposals, m1);
}
catch (final Exception e) {
- StatusManager.getManager().handle(new Status(IStatus.ERROR, LTK.BUNDLE_ID,
+ StatusManager.getManager().handle(new Status(IStatus.ERROR, Ltk.BUNDLE_ID,
"An error occurred when computing content assistant completion proposals.",
e ));
}
@@ -492,7 +492,7 @@
computer.computeInformationProposals(context, proposals, m1);
}
catch (final Exception e) {
- StatusManager.getManager().handle(new Status(IStatus.ERROR, LTK.BUNDLE_ID,
+ StatusManager.getManager().handle(new Status(IStatus.ERROR, Ltk.BUNDLE_ID,
"An error occurred when computing content assistant context information.",
e ));
}
@@ -751,7 +751,7 @@
computer.onSessionEnded();
}
catch (final Exception e) {
- StatusManager.getManager().handle(new Status(IStatus.ERROR, LTK.BUNDLE_ID, 0,
+ StatusManager.getManager().handle(new Status(IStatus.ERROR, Ltk.BUNDLE_ID, 0,
"Error by contributed content assist computer.", e ));
}
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ElementNameCompletionProposal.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ElementNameCompletionProposal.java
index 773dd58..a93ca55 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ElementNameCompletionProposal.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ElementNameCompletionProposal.java
@@ -28,7 +28,7 @@
import org.eclipse.statet.ecommons.ui.viewers.ViewerLabelUtils;
import org.eclipse.statet.ltk.core.ElementName;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
import org.eclipse.statet.ltk.ui.ElementLabelProvider;
@@ -37,7 +37,7 @@
*/
@NonNullByDefault
public abstract class ElementNameCompletionProposal<
- TContext extends AssistInvocationContext, TElement extends IModelElement>
+ TContext extends AssistInvocationContext, TElement extends LtkModelElement>
extends SourceProposal<TContext>
implements ICompletionProposalExtension3, ICompletionProposalExtension6 {
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/InsertEditorTemplateHandler.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/InsertEditorTemplateHandler.java
index d2670bf..9befd32 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/InsertEditorTemplateHandler.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/InsertEditorTemplateHandler.java
@@ -32,7 +32,7 @@
import org.eclipse.statet.ecommons.text.core.util.TextUtils;
import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
-import org.eclipse.statet.ltk.model.core.IModelManager;
+import org.eclipse.statet.ltk.model.core.ModelManager;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
import org.eclipse.statet.ltk.ui.sourceediting.assist.TemplateProposal.TemplateProposalParameters;
import org.eclipse.statet.ltk.ui.templates.SourceEditorTemplateContext;
@@ -57,7 +57,7 @@
final TextRegion region= editor.getSelectedRegion();
final String contentType= TextUtils.getContentType(editor.getViewer().getDocument(),
editor.getDocumentContentInfo(), region.getStartOffset(), true );
- return new AssistInvocationContext(editor, region, contentType, IModelManager.NONE, null );
+ return new AssistInvocationContext(editor, region, contentType, ModelManager.NONE, null );
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/QuickAssistProcessor.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/QuickAssistProcessor.java
index 48c5cd2..2a998bf 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/QuickAssistProcessor.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/QuickAssistProcessor.java
@@ -46,7 +46,7 @@
import org.eclipse.statet.ecommons.text.core.util.TextUtils;
-import org.eclipse.statet.ltk.model.core.IModelManager;
+import org.eclipse.statet.ltk.model.core.ModelManager;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -204,7 +204,7 @@
final IProgressMonitor monitor) {
return new AssistInvocationContext(getEditor(),
invocationContext.getOffset(), contentType,
- IModelManager.MODEL_FILE, monitor );
+ ModelManager.MODEL_FILE, monitor );
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ReshowCompletionsRunnable.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ReshowCompletionsRunnable.java
index 068b563..54b1043 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ReshowCompletionsRunnable.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/ReshowCompletionsRunnable.java
@@ -27,7 +27,7 @@
import org.eclipse.statet.ecommons.ui.util.UIAccess;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -37,7 +37,7 @@
// Snapshot of current state
private final ISourceEditor editor;
private final ISourceViewer viewer;
- private final ISourceUnit su;
+ private final SourceUnit su;
private final AbstractDocument document;
private final long documentStamp;
private final Point selection;
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/folding/FoldingEditorAddon.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/folding/FoldingEditorAddon.java
index efe3eeb..5fa9e4d 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/folding/FoldingEditorAddon.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/folding/FoldingEditorAddon.java
@@ -45,13 +45,13 @@
import org.eclipse.statet.internal.ltk.ui.LTKUIPlugin;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.ltk.core.ISourceModelStamp;
-import org.eclipse.statet.ltk.model.core.IModelElementDelta;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.core.SourceModelStamp;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElementDelta;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
import org.eclipse.statet.ltk.ui.IModelElementInputListener;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditorAddon;
@@ -64,7 +64,7 @@
public static final class FoldingStructureComputationContext {
public final AbstractDocument document;
- public final ISourceUnitModelInfo model;
+ public final SourceUnitModelInfo model;
public final AstInfo ast;
public final boolean isInitial;
@@ -73,7 +73,7 @@
protected FoldingStructureComputationContext(final AbstractDocument document,
- final ISourceUnitModelInfo model, final AstInfo ast, final boolean isInitial) {
+ final SourceUnitModelInfo model, final AstInfo ast, final boolean isInitial) {
this.document= document;
this.model= model;
this.ast= ast;
@@ -92,16 +92,16 @@
private static final class Input {
- private final ISourceUnit unit;
+ private final SourceUnit unit;
private boolean isInitilized;
- private ISourceModelStamp updateStamp;
+ private SourceModelStamp updateStamp;
private QualifiedName savePropertyName;
public ProjectionAnnotationModel annotationModel;
- Input(final ISourceUnit unit) {
+ Input(final SourceUnit unit) {
this.unit= unit;
this.isInitilized= false;
}
@@ -130,8 +130,8 @@
}
@Override
- public void elementChanged(final IModelElement element) {
- final Input input= (element != null) ? new Input((ISourceUnit) element) : null;
+ public void elementChanged(final LtkModelElement element) {
+ final Input input= (element != null) ? new Input((SourceUnit) element) : null;
synchronized (this) {
if (this.input != null) {
saveState(this.input);
@@ -141,7 +141,7 @@
}
@Override
- public void elementInitialInfo(final IModelElement element) {
+ public void elementInitialInfo(final LtkModelElement element) {
final Input input= this.input;
if (input != null && input.unit == element) {
update(input, null);
@@ -149,7 +149,7 @@
}
@Override
- public void elementUpdatedInfo(final IModelElement element, final IModelElementDelta delta) {
+ public void elementUpdatedInfo(final LtkModelElement element, final LtkModelElementDelta delta) {
final Input input= this.input;
if (input != null && input.unit == element) {
update(input, delta.getNewAst().getStamp());
@@ -185,10 +185,10 @@
}
final IProgressMonitor monitor= new NullProgressMonitor();
- final ISourceUnitModelInfo modelInfo;
+ final SourceUnitModelInfo modelInfo;
final AstInfo ast;
if (this.provider.requiresModel()) {
- modelInfo= input.unit.getModelInfo(null, IModelManager.MODEL_FILE, monitor);
+ modelInfo= input.unit.getModelInfo(null, ModelManager.MODEL_FILE, monitor);
if (modelInfo == null) {
return null;
}
@@ -199,13 +199,13 @@
ast= input.unit.getAstInfo(null, false, monitor);
}
final AbstractDocument document= input.unit.getDocument(monitor);
- if (ast == null || document == null || ast.getStamp().getSourceStamp() != document.getModificationStamp()) {
+ if (ast == null || document == null || ast.getStamp().getContentStamp() != document.getModificationStamp()) {
return null;
}
return new FoldingStructureComputationContext(document, modelInfo, ast, !input.isInitilized);
}
- private void update(final Input input, final ISourceModelStamp stamp) {
+ private void update(final Input input, final SourceModelStamp stamp) {
synchronized(input) {
final SourceEditor1 editor= this.editor;
if (editor == null) {
@@ -262,7 +262,7 @@
}
}
deletions= del.toArray(new FoldingAnnotation[del.size()]);
- if (ctx.document.getModificationStamp() != ctx.ast.getStamp().getSourceStamp()
+ if (ctx.document.getModificationStamp() != ctx.ast.getStamp().getContentStamp()
|| input != this.input) {
return;
}
@@ -465,10 +465,10 @@
private void saveState(final Input input) {
final SourceEditor1 editor= this.editor;
if (editor == null || !input.isInitilized || !input.unit.isSynchronized()
- || !(input.unit instanceof IWorkspaceSourceUnit) ) {
+ || !(input.unit instanceof WorkspaceSourceUnit) ) {
return;
}
- final IResource resource= ((IWorkspaceSourceUnit) input.unit).getResource();
+ final IResource resource= ((WorkspaceSourceUnit) input.unit).getResource();
if (resource == null || !resource.exists()) {
return;
}
@@ -511,10 +511,10 @@
private void loadState(final Input input, final SortedMap<Position, FoldingAnnotation> table) {
final SourceEditor1 editor= this.editor;
if (editor == null || !input.isInitilized || !input.unit.isSynchronized()
- || !(input.unit instanceof IWorkspaceSourceUnit) ) {
+ || !(input.unit instanceof WorkspaceSourceUnit) ) {
return;
}
- final IResource resource= ((IWorkspaceSourceUnit) input.unit).getResource();
+ final IResource resource= ((WorkspaceSourceUnit) input.unit).getResource();
if (resource == null || !resource.exists()) {
return;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/CodeGenerationTemplateContext.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/CodeGenerationTemplateContext.java
index 44b6ed9..18a7da0 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/CodeGenerationTemplateContext.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/CodeGenerationTemplateContext.java
@@ -32,7 +32,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditor1;
@@ -42,7 +42,7 @@
private final String lineDelimiter;
- private @Nullable ISourceUnit sourceUnit;
+ private @Nullable SourceUnit sourceUnit;
public CodeGenerationTemplateContext(final TemplateContextType contextType,
@@ -52,7 +52,7 @@
}
public CodeGenerationTemplateContext(final TemplateContextType contextType,
- final ISourceUnit su, final String lineDelim) {
+ final SourceUnit su, final String lineDelim) {
this(contextType, lineDelim);
this.sourceUnit= su;
}
@@ -64,7 +64,7 @@
}
@Override
- public @Nullable ISourceUnit getSourceUnit() {
+ public @Nullable SourceUnit getSourceUnit() {
return this.sourceUnit;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/IWorkbenchTemplateContext.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/IWorkbenchTemplateContext.java
index e5466f9..9dd938d 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/IWorkbenchTemplateContext.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/IWorkbenchTemplateContext.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -32,7 +32,7 @@
public interface IWorkbenchTemplateContext {
- public @Nullable ISourceUnit getSourceUnit();
+ public @Nullable SourceUnit getSourceUnit();
public @Nullable ISourceEditor getEditor();
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorContextType.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorContextType.java
index 39237ed..71c65a4 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorContextType.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorContextType.java
@@ -42,8 +42,8 @@
import org.eclipse.statet.internal.ltk.ui.TemplatesMessages;
import org.eclipse.statet.ltk.core.ElementName;
import org.eclipse.statet.ltk.core.util.UserInfo;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.IWorkspaceSourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.WorkspaceSourceUnit;
@NonNullByDefault
@@ -131,7 +131,7 @@
@Override
protected String resolve(final TemplateContext context) {
if (context instanceof IWorkbenchTemplateContext) {
- final ISourceUnit su= ((IWorkbenchTemplateContext) context).getSourceUnit();
+ final SourceUnit su= ((IWorkbenchTemplateContext) context).getSourceUnit();
if (su != null) {
final ElementName elementName= su.getElementName();
if (elementName != null) {
@@ -155,9 +155,9 @@
@Override
protected String resolve(final TemplateContext context) {
if (context instanceof IWorkbenchTemplateContext) {
- final ISourceUnit su= ((IWorkbenchTemplateContext) context).getSourceUnit();
- if (su instanceof IWorkspaceSourceUnit) {
- return ((IWorkspaceSourceUnit) su).getResource().getProject().getName();
+ final SourceUnit su= ((IWorkbenchTemplateContext) context).getSourceUnit();
+ if (su instanceof WorkspaceSourceUnit) {
+ return ((WorkspaceSourceUnit) su).getResource().getProject().getName();
}
}
return ""; //$NON-NLS-1$
@@ -165,7 +165,7 @@
}
/**
- * Resolver for ToDo-tags. Intend to extend and overwrite {@link #getTag(ISourceUnit)}
+ * Resolver for ToDo-tags. Intend to extend and overwrite {@link #getTag(SourceUnit)}
*/
protected static class Todo extends SimpleTemplateVariableResolver {
@@ -184,7 +184,7 @@
return "TODO"; //$NON-NLS-1$
}
- protected @Nullable String getTag(final @Nullable ISourceUnit su) {
+ protected @Nullable String getTag(final @Nullable SourceUnit su) {
return null;
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorTemplateContext.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorTemplateContext.java
index 9050d35..01a2c39 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorTemplateContext.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceEditorTemplateContext.java
@@ -38,7 +38,7 @@
import org.eclipse.statet.ecommons.text.TextUtil;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -74,7 +74,7 @@
}
@Override
- public @Nullable ISourceUnit getSourceUnit() {
+ public @Nullable SourceUnit getSourceUnit() {
return this.editor.getSourceUnit();
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceUnitVariableResolver.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceUnitVariableResolver.java
index 795eec8..c4f7f04 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceUnitVariableResolver.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/SourceUnitVariableResolver.java
@@ -18,7 +18,7 @@
import org.eclipse.jface.text.templates.TemplateVariableResolver;
import org.eclipse.statet.internal.ltk.ui.TemplatesMessages;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
public abstract class SourceUnitVariableResolver extends TemplateVariableResolver {
@@ -35,7 +35,7 @@
@Override
protected String resolve(final TemplateContext context) {
- final ISourceUnit su= ((IWorkbenchTemplateContext) context).getSourceUnit();
+ final SourceUnit su= ((IWorkbenchTemplateContext) context).getSourceUnit();
if (su != null) {
return su.getElementName().getDisplayName();
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/config/AbstractEditorTemplatesPage.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/config/AbstractEditorTemplatesPage.java
index 76e3dfb..6ccd6b5 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/config/AbstractEditorTemplatesPage.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/templates/config/AbstractEditorTemplatesPage.java
@@ -52,7 +52,7 @@
import org.eclipse.statet.ecommons.ui.util.UIAccess;
import org.eclipse.statet.internal.ltk.ui.LTKUIPlugin;
-import org.eclipse.statet.ltk.model.core.IModelManager;
+import org.eclipse.statet.ltk.model.core.ModelManager;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditorViewerConfigurator;
import org.eclipse.statet.ltk.ui.sourceediting.ViewerSourceEditorAdapter;
@@ -111,7 +111,7 @@
throws BadPartitioningException, BadLocationException {
final String contentType= TextUtils.getContentType(editor.getViewer().getDocument(),
editor.getDocumentContentInfo(), region.getStartOffset(), true );
- return new AssistInvocationContext(editor, region, contentType, IModelManager.NONE, null );
+ return new AssistInvocationContext(editor, region, contentType, ModelManager.NONE, null );
}
@Override
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/LTKSelectionUtils.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/LTKSelectionUtils.java
index 59684fa..508a176 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/LTKSelectionUtils.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/LTKSelectionUtils.java
@@ -37,12 +37,12 @@
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.util.AstSelection;
-import org.eclipse.statet.ltk.core.LTKUtils;
-import org.eclipse.statet.ltk.model.core.IModelManager;
-import org.eclipse.statet.ltk.model.core.elements.IModelElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnitModelInfo;
+import org.eclipse.statet.ltk.model.core.LtkModelUtils;
+import org.eclipse.statet.ltk.model.core.ModelManager;
+import org.eclipse.statet.ltk.model.core.element.LtkModelElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceUnitModelInfo;
import org.eclipse.statet.ltk.ui.sourceediting.ISourceEditor;
@@ -67,20 +67,20 @@
}
- public static IModelElement @Nullable [] getSelectedElements(final @Nullable ISelection selection) {
+ public static LtkModelElement @Nullable [] getSelectedElements(final @Nullable ISelection selection) {
if (selection instanceof IStructuredSelection) {
return getSelectedElements((IStructuredSelection) selection);
}
return null;
}
- public static IModelElement @Nullable [] getSelectedElements(final IStructuredSelection selection) {
- final IModelElement[] elements= new @NonNull IModelElement[selection.size()];
+ public static LtkModelElement @Nullable [] getSelectedElements(final IStructuredSelection selection) {
+ final LtkModelElement[] elements= new @NonNull LtkModelElement[selection.size()];
final Iterator<?> iter= selection.iterator();
for (int i= 0; i < elements.length; i++) {
final Object next= iter.next();
- if (next instanceof IModelElement) {
- elements[i]= (IModelElement) next;
+ if (next instanceof LtkModelElement) {
+ elements[i]= (LtkModelElement) next;
}
else {
return null;
@@ -89,7 +89,7 @@
return elements;
}
- public static @Nullable ISourceUnit getSingleSourceUnit(final IWorkbenchPart part) {
+ public static @Nullable SourceUnit getSingleSourceUnit(final IWorkbenchPart part) {
final ISourceEditor editor= part.getAdapter(ISourceEditor.class);
if (editor == null) {
return null;
@@ -97,11 +97,11 @@
return editor.getSourceUnit();
}
- public static @Nullable AstNode getSelectedAstNode(final ISourceUnit su, final String type,
+ public static @Nullable AstNode getSelectedAstNode(final SourceUnit su, final String type,
final @Nullable ISelection selection, final IProgressMonitor monitor) {
if (selection instanceof ITextSelection) {
final ITextSelection textSelection= (ITextSelection) selection;
- final ISourceUnitModelInfo modelInfo= su.getModelInfo(type, IModelManager.MODEL_FILE, monitor);
+ final SourceUnitModelInfo modelInfo= su.getModelInfo(type, ModelManager.MODEL_FILE, monitor);
if (modelInfo == null) {
return null;
}
@@ -117,7 +117,7 @@
return null;
}
- public static ISourceStructElement @Nullable [] getSelectedSourceStructElements(
+ public static SourceStructElement @Nullable [] getSelectedSourceStructElements(
final @Nullable ISelection selection) {
if (selection instanceof IStructuredSelection) {
return getSelectedSourceStructElements((IStructuredSelection) selection);
@@ -125,14 +125,14 @@
return null;
}
- public static ISourceStructElement @Nullable [] getSelectedSourceStructElements(
+ public static SourceStructElement @Nullable [] getSelectedSourceStructElements(
final IStructuredSelection selection) {
- final ISourceStructElement[] elements= new @NonNull ISourceStructElement[selection.size()];
+ final SourceStructElement[] elements= new @NonNull SourceStructElement[selection.size()];
final Iterator<?> iter= selection.iterator();
for (int i= 0; i < elements.length; i++) {
final Object next= iter.next();
- if (next instanceof ISourceStructElement) {
- elements[i]= (ISourceStructElement) next;
+ if (next instanceof SourceStructElement) {
+ elements[i]= (SourceStructElement) next;
continue;
}
return null;
@@ -167,16 +167,16 @@
return elements;
}
- public static ISourceStructElement @Nullable [] getSelectedSourceStructElement(
- final @Nullable ISourceUnitModelInfo suModel, final ITextSelection selection) {
+ public static SourceStructElement @Nullable [] getSelectedSourceStructElement(
+ final @Nullable SourceUnitModelInfo suModel, final ITextSelection selection) {
if (suModel != null) {
- final ISourceStructElement root= suModel.getSourceElement();
+ final SourceStructElement root= suModel.getSourceElement();
final int selectionStart= selection.getOffset();
final int selectionEnd= selectionStart + selection.getLength();
if (selectionStart >= root.getSourceRange().getStartOffset()
&& selectionEnd <= root.getSourceRange().getEndOffset()) {
- return new ISourceStructElement[] {
- LTKUtils.getCoveringSourceElement(root, selectionStart, selectionEnd),
+ return new SourceStructElement[] {
+ LtkModelUtils.getCoveringSourceElement(root, selectionStart, selectionEnd),
};
}
}
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/ViewerSelectionTransferDropAdapter.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/ViewerSelectionTransferDropAdapter.java
index 7ee96ef..e8490a2 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/ViewerSelectionTransferDropAdapter.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/util/ViewerSelectionTransferDropAdapter.java
@@ -46,9 +46,9 @@
import org.eclipse.statet.internal.ltk.ui.refactoring.Messages;
import org.eclipse.statet.ltk.model.core.ElementSet;
-import org.eclipse.statet.ltk.model.core.elements.ISourceElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceStructElement;
-import org.eclipse.statet.ltk.model.core.elements.ISourceUnit;
+import org.eclipse.statet.ltk.model.core.element.SourceElement;
+import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
+import org.eclipse.statet.ltk.model.core.element.SourceUnit;
import org.eclipse.statet.ltk.refactoring.core.CommonRefactoringFactory;
import org.eclipse.statet.ltk.refactoring.core.RefactoringAdapter;
import org.eclipse.statet.ltk.refactoring.core.RefactoringDestination;
@@ -106,7 +106,7 @@
if (target == null) {
return false;
}
- return (target instanceof ISourceStructElement);
+ return (target instanceof SourceStructElement);
}
@@ -152,7 +152,7 @@
}
private int internalDetermineOperation(final Object target, final int operation, final int operations) {
- if (!(target instanceof ISourceElement)) {
+ if (!(target instanceof SourceElement)) {
return DND.DROP_NONE;
}
@@ -332,7 +332,7 @@
}
}
if (editor != null) {
- final ISourceUnit su= editor.getSourceUnit();
+ final SourceUnit su= editor.getSourceUnit();
if (su != null) {
helper.enableInsertPosition(su);
}
diff --git a/ltk/pom.xml b/ltk/pom.xml
index c48cd66..5ad2f36 100644
--- a/ltk/pom.xml
+++ b/ltk/pom.xml
@@ -36,8 +36,8 @@
<module>org.eclipse.statet.ltk.core</module>
<module>org.eclipse.statet.ltk.ui</module>
- <module>org.eclipse.statet.ltk.buildpaths.core</module>
- <module>org.eclipse.statet.ltk.buildpaths.ui</module>
+ <module>org.eclipse.statet.ltk.buildpath.core</module>
+ <module>org.eclipse.statet.ltk.buildpath.ui</module>
<module>_assemblies</module>