⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gettermethodedit.java

📁 Python Development Environment (Python IDE plugin for Eclipse). Features editor, code completion, re
💻 JAVA
字号:
package org.python.pydev.refactoring.codegenerator.generateproperties.edit;

import java.util.ArrayList;
import java.util.List;

import org.python.pydev.parser.jython.SimpleNode;
import org.python.pydev.parser.jython.ast.Attribute;
import org.python.pydev.parser.jython.ast.FunctionDef;
import org.python.pydev.parser.jython.ast.Name;
import org.python.pydev.parser.jython.ast.NameTok;
import org.python.pydev.parser.jython.ast.Return;
import org.python.pydev.parser.jython.ast.argumentsType;
import org.python.pydev.parser.jython.ast.exprType;
import org.python.pydev.parser.jython.ast.stmtType;
import org.python.pydev.refactoring.ast.visitors.NodeHelper;
import org.python.pydev.refactoring.codegenerator.generateproperties.request.GeneratePropertiesRequest;
import org.python.pydev.refactoring.core.edit.AbstractInsertEdit;

public class GetterMethodEdit extends AbstractInsertEdit {

	private static final String GET = "get";

	private String attributeName;

	private int offsetStrategy;

	public GetterMethodEdit(GeneratePropertiesRequest req) {
		super(req);
		this.attributeName = nodeHelper.getPublicAttr(req.getAttributeName());
		this.offsetStrategy = req.getMethodOffsetStrategy();
	}

	@Override
	protected SimpleNode getEditNode() {
		argumentsType args = initArguments();
		Attribute returnAttribute = initReturn();
		List<stmtType> body = initBody(returnAttribute);

		return new FunctionDef(new NameTok(GET + getCapitalString(attributeName), NameTok.FunctionName), args, body
				.toArray(new stmtType[0]), null);
	}

	private List<stmtType> initBody(Attribute returnAttribute) {
		List<stmtType> body = new ArrayList<stmtType>();
		body.add(new Return(returnAttribute));
		return body;
	}

	private Attribute initReturn() {
		Attribute returnAttribute = new Attribute(new Name(NodeHelper.KEYWORD_SELF, Name.Load), new NameTok(nodeHelper
				.getPrivateAttr(attributeName), NameTok.Attrib), Attribute.Load);
		return returnAttribute;
	}

	private argumentsType initArguments() {
		exprType[] params = new exprType[1];
		params[0] = (new Name(NodeHelper.KEYWORD_SELF, Name.Param));
		argumentsType args = new argumentsType(params, null, null, null);
		return args;
	}

	@Override
	public int getOffsetStrategy() {
		return offsetStrategy;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -