diff options
Diffstat (limited to 'org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceType.java')
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceType.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceType.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceType.java index 504a131128..a2bbf9c9c2 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceType.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SourceType.java @@ -300,6 +300,12 @@ public IField[] getRecordComponents() throws JavaModelException { return NO_FIELDS; return getFieldsOrComponents(true); } +@Override +public String[] getPermittedSubtypeNames() throws JavaModelException { + SourceTypeElementInfo info = (SourceTypeElementInfo) getElementInfo(); + char[][] names= info.getPermittedSubtypeNames(); + return CharOperation.toStrings(names); +} private IField[] getFieldsOrComponents(boolean component) throws JavaModelException { ArrayList list = getChildrenOfType(FIELD); if (list.size() == 0) { @@ -694,6 +700,15 @@ public boolean isRecord() throws JavaModelException { SourceTypeElementInfo info = (SourceTypeElementInfo) getElementInfo(); return TypeDeclaration.kind(info.getModifiers()) == TypeDeclaration.RECORD_DECL; } +/** + * @see IType#isSealed() + * @noreference This method is not intended to be referenced by clients as it is a part of Java preview feature. + */ +@Override +public boolean isSealed() throws JavaModelException { + SourceTypeElementInfo info = (SourceTypeElementInfo) getElementInfo(); + return Flags.isSealed(info.getModifiers()); +} /** * @see IType @@ -967,6 +982,9 @@ protected void toStringInfo(int tab, StringBuffer buffer, Object info, boolean s } } else { try { + if (isSealed()) { + buffer.append("sealed "); //$NON-NLS-1$ + } if (isRecord()) { buffer.append("record "); //$NON-NLS-1$ } else if (isEnum()) { |