Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7165621

Browse files
committed
[ADD] Automatic generation abstract methods and interface methods
[FIX] Error with "abstract" modifier detection
1 parent 8eefc35 commit 7165621

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

JavaCodeGenerator.js

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ define(function (require, exports, module) {
464464

465465
// Modifiers
466466
var _modifiers = this.getModifiers(elem);
467-
if (_modifiers.indexOf("abstract") !== -1 && _.some(elem.operations, function (op) { return op.isAbstract === true; })) {
467+
if (_modifiers.indexOf("abstract") === -1 && _.some(elem.operations, function (op) { return op.isAbstract === true; })) {
468468
_modifiers.push("abstract");
469469
}
470470
if (_modifiers.length > 0) {
@@ -522,6 +522,25 @@ define(function (require, exports, module) {
522522
codeWriter.writeLine();
523523
}
524524

525+
// Extends methods
526+
if (_extends.length > 0) {
527+
for (i = 0, len = _extends[0].operations.length; i < len; i++) {
528+
_modifiers = this.getModifiers(_extends[0].operations[i]);
529+
if( _modifiers.indexOf("abstract") !== -1 ) {
530+
this.writeMethod(codeWriter, _extends[0].operations[i], options, false, false);
531+
codeWriter.writeLine();
532+
}
533+
}
534+
}
535+
536+
// Interface methods
537+
for (var j = 0; j < _implements.length; j++) {
538+
for (i = 0, len = _implements[j].operations.length; i < len; i++) {
539+
this.writeMethod(codeWriter, _implements[j].operations[i], options, false, false);
540+
codeWriter.writeLine();
541+
}
542+
}
543+
525544
// Inner Definitions
526545
for (i = 0, len = elem.ownedElements.length; i < len; i++) {
527546
var def = elem.ownedElements[i];
@@ -679,7 +698,7 @@ define(function (require, exports, module) {
679698

680699
// Modifiers
681700
var _modifiers = this.getModifiers(elem);
682-
if (_modifiers.indexOf("abstract") !== -1 && _.some(elem.operations, function (op) { return op.isAbstract === true; })) {
701+
if (_modifiers.indexOf("abstract") === -1 && _.some(elem.operations, function (op) { return op.isAbstract === true; })) {
683702
_modifiers.push("abstract");
684703
}
685704
if (_modifiers.length > 0) {
@@ -706,6 +725,17 @@ define(function (require, exports, module) {
706725
codeWriter.writeLine();
707726
}
708727

728+
// Extends methods
729+
if (_extends.length > 0) {
730+
for (i = 0, len = _extends[0].operations.length; i < len; i++) {
731+
_modifiers = this.getModifiers(_extends[0].operations[i]);
732+
if( _modifiers.indexOf("abstract") !== -1 ) {
733+
this.writeMethod(codeWriter, _extends[0].operations[i], options, false, false);
734+
codeWriter.writeLine();
735+
}
736+
}
737+
}
738+
709739
// Inner Definitions
710740
for (i = 0, len = elem.ownedElements.length; i < len; i++) {
711741
var def = elem.ownedElements[i];

0 commit comments

Comments
 (0)