Class BaseMethod
java.lang.Object
- All Implemented Interfaces:
io.github.mmm.code.api.CodeWithContext, io.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.member.CodeMethods, io.github.mmm.code.api.member.CodeMethod>, io.github.mmm.code.api.element.CodeElement, io.github.mmm.code.api.element.CodeElementWithDeclaringType, io.github.mmm.code.api.element.CodeElementWithModifiers, io.github.mmm.code.api.element.CodeElementWithName, io.github.mmm.code.api.element.CodeElementWithTypeVariables, io.github.mmm.code.api.item.CodeItem, io.github.mmm.code.api.item.CodeItemWithComment, io.github.mmm.code.api.item.CodeItemWithDeclaringType, io.github.mmm.code.api.item.CodeItemWithModifiers, io.github.mmm.code.api.item.CodeItemWithName, io.github.mmm.code.api.item.CodeItemWithType, io.github.mmm.code.api.item.CodeItemWithVariables, io.github.mmm.code.api.item.CodeMutableItem, io.github.mmm.code.api.item.CodeMutableItemWithComment, io.github.mmm.code.api.member.CodeMember, io.github.mmm.code.api.member.CodeMethod, io.github.mmm.code.api.member.CodeOperation, io.github.mmm.code.api.merge.CodeAdvancedMergeableItem<io.github.mmm.code.api.member.CodeMethod>, io.github.mmm.code.api.merge.CodeMergeableItem<io.github.mmm.code.api.member.CodeMethod>, io.github.mmm.code.api.node.CodeFunction, io.github.mmm.code.api.node.CodeNode, io.github.mmm.code.api.node.CodeNodeItem, io.github.mmm.code.api.object.CodeMutable
Base implementation of
CodeMethod.- Since:
- 1.0.0
- Author:
- Joerg Hohwiller (hohwille at users.sourceforge.net)
-
Field Summary
Fields inherited from interface io.github.mmm.code.api.item.CodeItem
DEFAULT_INDENT, DEFAULT_NEWLINE -
Constructor Summary
ConstructorsConstructorDescriptionBaseMethod(BaseMethod template, io.github.mmm.code.api.copy.CodeCopyMapper mapper) The copy-constructor.BaseMethod(BaseMethods parent, Method reflectiveObject) The constructor.BaseMethod(BaseMethods parent, String name) The constructor.BaseMethod(BaseMethods parent, String name, BaseTypeVariables typeVariables) The constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleancopy()copy(io.github.mmm.code.api.copy.CodeCopyMapper mapper) protected voidCalled fromBaseMutableItem.initialize()on first invocation.protected voidCalled on the first call ofBaseMutableItem.setImmutable().protected voiddoWrite(Appendable sink, String newline, String defaultIndent, String currentIndent, io.github.mmm.code.api.language.CodeLanguage language) io.github.mmm.code.api.member.CodeFieldio.github.mmm.code.api.expression.CodeExpressionio.github.mmm.code.api.member.CodeMethodio.github.mmm.code.api.member.CodeMethodio.github.mmm.code.api.member.CodeMethodmerge(io.github.mmm.code.api.member.CodeMethod other, io.github.mmm.code.api.merge.CodeMergeStrategyDecider decider, io.github.mmm.code.api.merge.CodeMergeStrategy parentStrategy) voidsetDefaultValue(io.github.mmm.code.api.expression.CodeExpression defaultValue) Methods inherited from class BaseOperation
doMerge, getBody, getExceptions, getParameters, getTypeParameters, getVariable, setBodyMethods inherited from class BaseMember
getDeclaringType, getName, setNameMethods inherited from class BaseElementWithModifiers
getModifiers, setModifiersMethods inherited from class BaseElement
doMerge, doWriteAnnotations, doWriteComment, doWriteDoc, getAnnotations, getComment, getDoc, removeFromParent, setCommentMethods inherited from class BaseNodeItem
getContainerItem, getContainerItemDeclared, getContext, getLanguage, getSource, toPathStringMethods inherited from class BaseMutableItem
doCopyNode, doCopyNodeUnsafe, doMapList, doneInitialize, getDefaultCopyMapper, getDefaultEncoding, initialize, initialize, isImmutable, isInitialized, isInitializing, isSystemImmutable, isSystemImmutable, makeImmutable, makeImmutable, setImmutable, setImmutableIfNotSystemImmutable, verifyMutalbe, writeItemMethods inherited from class BaseItem
getOwningType, getSourceCode, getSpaces, toString, writeMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.github.mmm.code.api.merge.CodeAdvancedMergeableItem
merge, mergeMethods inherited from interface io.github.mmm.code.api.element.CodeElement
getAnnotations, getDoc, removeFromParentMethods inherited from interface io.github.mmm.code.api.element.CodeElementWithModifiers
setModifiersMethods inherited from interface io.github.mmm.code.api.element.CodeElementWithName
setNameMethods inherited from interface io.github.mmm.code.api.element.CodeElementWithTypeVariables
getTypeParametersMethods inherited from interface io.github.mmm.code.api.node.CodeFunction
getBody, setBodyMethods inherited from interface io.github.mmm.code.api.item.CodeItem
getLanguage, getSourceCode, write, write, write, write, write, writeMethods inherited from interface io.github.mmm.code.api.item.CodeItemWithComment
getCommentMethods inherited from interface io.github.mmm.code.api.item.CodeItemWithDeclaringType
getDeclaringTypeMethods inherited from interface io.github.mmm.code.api.item.CodeItemWithModifiers
getModifiersMethods inherited from interface io.github.mmm.code.api.item.CodeItemWithName
getNameMethods inherited from interface io.github.mmm.code.api.item.CodeItemWithVariables
getVariableMethods inherited from interface io.github.mmm.code.api.member.CodeMethod
getTypeMethods inherited from interface io.github.mmm.code.api.object.CodeMutable
isImmutable, isMutableMethods inherited from interface io.github.mmm.code.api.item.CodeMutableItem
setImmutableMethods inherited from interface io.github.mmm.code.api.item.CodeMutableItemWithComment
setCommentMethods inherited from interface io.github.mmm.code.api.member.CodeOperation
getExceptions, getParametersMethods inherited from interface io.github.mmm.code.api.CodeWithContext
getContext, getSource
-
Constructor Details
-
BaseMethod
The constructor. -
BaseMethod
The constructor.- Parameters:
parent- theparent.name- thename.typeVariables- thetype variables.
-
BaseMethod
The constructor.- Parameters:
parent- theparent.reflectiveObject- thereflective object. May benull.
-
BaseMethod
The copy-constructor.- Parameters:
template- theBaseMethodto copy.mapper- theCodeCopyMapper.
-
-
Method Details
-
doInitialize
protected void doInitialize()Description copied from class:BaseNodeItemCalled fromBaseMutableItem.initialize()on first invocation. May be overridden but never be called from anywhere else.- Overrides:
doInitializein classBaseElement
-
getParent
- Specified by:
getParentin interfaceio.github.mmm.code.api.member.CodeMember- Specified by:
getParentin interfaceio.github.mmm.code.api.node.CodeNode- Specified by:
getParentin interfaceio.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.member.CodeMethods, io.github.mmm.code.api.member.CodeMethod>- Specified by:
getParentin interfaceio.github.mmm.code.api.member.CodeOperation- Specified by:
getParentin classBaseOperation
-
doSetImmutable
protected void doSetImmutable()Description copied from class:BaseMutableItemCalled on the first call ofBaseMutableItem.setImmutable(). Has to be overridden to updateCollections, make child items immutable, etc.- Overrides:
doSetImmutablein classBaseOperation
-
getReturns
- Specified by:
getReturnsin interfaceio.github.mmm.code.api.member.CodeMethod
-
getDefaultValue
public io.github.mmm.code.api.expression.CodeExpression getDefaultValue()- Specified by:
getDefaultValuein interfaceio.github.mmm.code.api.member.CodeMethod
-
setDefaultValue
public void setDefaultValue(io.github.mmm.code.api.expression.CodeExpression defaultValue) - Specified by:
setDefaultValuein interfaceio.github.mmm.code.api.member.CodeMethod
-
getReflectiveObject
- Specified by:
getReflectiveObjectin interfaceio.github.mmm.code.api.element.CodeElementWithTypeVariables- Specified by:
getReflectiveObjectin interfaceio.github.mmm.code.api.member.CodeMember- Specified by:
getReflectiveObjectin interfaceio.github.mmm.code.api.member.CodeMethod- Specified by:
getReflectiveObjectin interfaceio.github.mmm.code.api.item.CodeMutableItem- Specified by:
getReflectiveObjectin interfaceio.github.mmm.code.api.member.CodeOperation- Specified by:
getReflectiveObjectin classBaseOperation
-
canHaveBody
public boolean canHaveBody()- Specified by:
canHaveBodyin interfaceio.github.mmm.code.api.node.CodeFunction- Overrides:
canHaveBodyin classBaseOperation
-
getSourceCodeObject
public io.github.mmm.code.api.member.CodeMethod getSourceCodeObject()- Specified by:
getSourceCodeObjectin classBaseOperation- Returns:
- the optional internal
CodeItemrepresenting the source-code (to merge). Otherwisenull. This is an internal API. Do not use or rely on it from outside.
-
getParentMethod
public io.github.mmm.code.api.member.CodeMethod getParentMethod()- Specified by:
getParentMethodin interfaceio.github.mmm.code.api.member.CodeMethod
-
getAccessorField
public io.github.mmm.code.api.member.CodeField getAccessorField()- Specified by:
getAccessorFieldin interfaceio.github.mmm.code.api.member.CodeMethod
-
merge
public io.github.mmm.code.api.member.CodeMethod merge(io.github.mmm.code.api.member.CodeMethod other, io.github.mmm.code.api.merge.CodeMergeStrategyDecider decider, io.github.mmm.code.api.merge.CodeMergeStrategy parentStrategy) - Specified by:
mergein interfaceio.github.mmm.code.api.merge.CodeAdvancedMergeableItem<io.github.mmm.code.api.member.CodeMethod>
-
copy
- Specified by:
copyin interfaceio.github.mmm.code.api.element.CodeElement- Specified by:
copyin interfaceio.github.mmm.code.api.element.CodeElementWithDeclaringType- Specified by:
copyin interfaceio.github.mmm.code.api.element.CodeElementWithModifiers- Specified by:
copyin interfaceio.github.mmm.code.api.element.CodeElementWithName- Specified by:
copyin interfaceio.github.mmm.code.api.element.CodeElementWithTypeVariables- Specified by:
copyin interfaceio.github.mmm.code.api.member.CodeMember- Specified by:
copyin interfaceio.github.mmm.code.api.member.CodeMethod- Specified by:
copyin interfaceio.github.mmm.code.api.item.CodeMutableItem- Specified by:
copyin interfaceio.github.mmm.code.api.node.CodeNodeItem- Specified by:
copyin interfaceio.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.member.CodeMethods, io.github.mmm.code.api.member.CodeMethod>- Specified by:
copyin interfaceio.github.mmm.code.api.member.CodeOperation- Specified by:
copyin classBaseOperation
-
copy
- Specified by:
copyin interfaceio.github.mmm.code.api.item.CodeMutableItem- Specified by:
copyin interfaceio.github.mmm.code.api.node.CodeNodeItem- Specified by:
copyin interfaceio.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.member.CodeMethods, io.github.mmm.code.api.member.CodeMethod>
-
doWrite
protected void doWrite(Appendable sink, String newline, String defaultIndent, String currentIndent, io.github.mmm.code.api.language.CodeLanguage language) throws IOException - Overrides:
doWritein classBaseElement- Parameters:
sink- theAppendablewhere toappendthe code from thisCodeItem.newline- the newlineString.defaultIndent- theStringused for indentation (e.g. a number of spaces to insert per indent level).currentIndent- the current indent (number of spaces). Initially the empty string (""). Before a recursion thedefaultIndentwill be appended.language- theCodeLanguageto use.- Throws:
IOException- if thrown byAppendable.- See Also:
-