RubyでJavaのアクセサを生成する

大したものじゃないけど、Java開発がとってもはかどる。
IDE使えって話かもしれないけど。
staticは非対応。
 

使い方

echo "private String username;
private String password;
private Integer age;" | genaccesor.rb

 

結果

// username
public void setUsername(String username) {
	this.username = username;
}
public String getUsername() {
	return this.username;
}

// password
public void setPassword(String password) {
	this.password = password;
}
public String getPassword() {
	return this.password;
}

// age
public void setAge(Integer age) {
	this.age = age;
}
public Integer getAge() {
	return this.age;
}

 

ソース

#!/usr/bin/ruby

lines = $stdin.readlines

lines.each do |line|
	line = line.split(/[=;]/)[0]
	parts = line.scan(/\S+/)

	# アクセス修飾子削除
	parts.delete_if { |item|
		/^(public|private|protected)$/i =~ item
	}

	if parts.size==2
		# 型
		type = parts.shift

		# プロパティ名
		name = parts.shift
		upname = name.clone
		upname[0] = upname[0..0].upcase

		# output
		puts sprintf("// %s", name)
		puts sprintf("public void set%s(%s %s) {", upname, type, name)
		puts sprintf("\tthis.%s = %s;", name, name)
		puts "}"
		puts sprintf("public %s get%s() {", type, upname)
		puts sprintf("\treturn this.%s;", name)
		puts "}"
		puts
	end
end