diff --git a/java_gen/templates/custom/OFFlowModifyVer13.Builder_getActions.java b/java_gen/templates/custom/OFFlowModifyVer13.Builder_getActions.java
index ce71981..ded35c2 100644
--- a/java_gen/templates/custom/OFFlowModifyVer13.Builder_getActions.java
+++ b/java_gen/templates/custom/OFFlowModifyVer13.Builder_getActions.java
@@ -1,19 +1 @@
-
-    @Override
-    public List<OFAction> getActions()throws UnsupportedOperationException {
-//:: if builder:
-        if (!this.instructionsSet)
-//:: if has_parent:
-            return parentMessage.getActions();
-//:: else:
-            return Collections.emptyList();
-//:: #endif
-//:: #endif
-        for (OFInstruction inst : this.instructions) {
-            if (inst instanceof OFInstructionApplyActions) {
-                OFInstructionApplyActions iap = (OFInstructionApplyActions)inst;
-                return iap.getActions();
-            }
-        }
-        return Collections.emptyList();
-    }
\ No newline at end of file
+//:: include("custom/OFFlowModify.Builder_getActions.java", msg=msg, version=version, has_parent=False)
