Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Eclipse] getters & setters generatie template aanpassen

Pagina: 1
Acties:
  • 220 views sinds 30-01-2008
  • Reageer

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
In Eclipse worden de getters en setters standaard als volgt gegenereerd:
Java:
1
2
private String myStringProperty;
private int myIntProperty;
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
 * @return
 */
public String getMyStringProperty() {
    return myStringProperty;
}

/**
 * @return
 */
public String getMyIntProperty() {
    return myIntProperty;
}

/**
 * @param string
 */
public void setMyStringProperty(String string) {
    myStringProperty = string;
}

/**
 * @param i
 */
public void setMyIntProperty(int i) {
    myIntProperty = i;
}

Handige functie, maar elke keer moet ik (don't ask) de setters achteraf alsnog naar de volgende stijl aanpassen:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * @param myStringProperty
 */
public void setMyStringProperty(String myStringProperty) {
    this.myStringProperty = myStringProperty;
}

/**
 * @param myIntProperty
 */
public void setMyIntProperty(int myIntProperty) {
    this.myIntProperty = myIntProperty;
}
Op zich niet zo erg (anders had ik het wel gewoon zelf neergetypt ipv te genereren), maar bij enorme POJO's kost het aanpassen (of het zelf neertypen :+ ) toch wel wat tijd :X Nu kan ik echter nergens in de Eclipse settings terugvinden hoe ik de getters & setters generatie template kan aanpassen. Ook niet in de helpfunctie en wiki.eclipse.org :/

Er is wel een optie om een Code Generation configuraties via een XML bestand te voeren, echter ik kan nergens vinden hoe zo'n XML bestand zou moeten eruitzien. Ik heb de exportfunctie gebruikt om de bestaande Code Generation templates te opvragen, echter er staat nergens een getter & setter template in de geëxporteerde codetemplates.xml :/

Heeft hier iemand ervaring mee? Hoe zou de codetemplate XML eruitzien om de getters & setters als bovengenoemd te laten genereren?

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Vreemd. Je kan bij Preferences -> Java -> Code Style een field prefix en suffix opgeven. Als je daar als prefix 'my' en als suffix 'Property' invoert krijg je bij het automatisch genereren de code die je als eerste geeft. Als je deze velden in de instellingen leeg laat, wordt de code wel zoals je wilt.
Heb je hier toevallig al wat ingevuld?

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Getters en setters in je xml template:

code:
1
2
3
4
5
6
7
8
9
10
<template autoinsert="true" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">
  /**
   * @return Returns the ${bare_field_name}.
   */
</template>
<template autoinsert="true" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">
  /**
   * @param ${param} The ${bare_field_name} to set.
   */
</template>


En dan nog even aanpassen aan je wensen. Let erop dat je geen layout voor uitlijnen in je xml stopt, want dat ziet het er in je code niet uit...

Bovenstaande moet je nog even naar je wensen aanpassen, maar de bare_field_name variabele is wat je zoekt :)

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

@rrrandy: Volgens mij gaat dat stuk alleen over de gegenereerde commentaren?

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
zwippie schreef op maandag 06 november 2006 @ 15:22:
@rrrandy: Volgens mij gaat dat stuk alleen over de gegenereerde commentaren?
Ah, ik had even niet goed opgelet bij de startpost, het gaat ook om de functie zelf.

In eclipse moet je de stijl voor getter/setter commentaren, de getter/setter body en de algehele formatter apart instellen. Dit is zoals zwippie hierboven al gezegd heeft. Deze instellingen kun je over de hele workspace (window -> preferences -> java code style) op projectniveau (project -> properties -> java code style) instellen. Ik zie het probleem niet precies, ik kan alles precies zo instellen als ik dat wil...

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Je kunt bij Java -> code style ook een vinkje zetten bij "Qualify all generated field accesses with this.".

Dan worden je parameters niet afgekort, maar wordt gewoon dezelfde benaming gebruikt als voor de member.

Erg leuk (als je shadowing aangenaam vindt :)).
http://www.leepoint.net/n...s/60shadow-variables.html

Fat Pizza's pizza, they are big and they are cheezy


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
Hmm, die zit dus niet in WebSphere Studio Application Developer 5.1.1 (Eclipse 3.1.x based) :/

Ik had thuis even in Eclipse 3.2 gekeken en daar zat het idd in, Code Style - Code Templates - Getter body/Setter body. Het exporteren uit 3.2 en importeren in WSAD lukt ook niet. Het overzetten van de relevante packages wil ook niet lukken (wordt niet opgepakt). Maargoed, het zal vast wel in RAD 6 zitten die wij volgend jaar krijgen.


En verder:
zwippie schreef op maandag 06 november 2006 @ 15:07:
Vreemd. Je kan bij Preferences -> Java -> Code Style een field prefix en suffix opgeven. Als je daar als prefix 'my' en als suffix 'Property' invoert krijg je bij het automatisch genereren de code die je als eerste geeft. Als je deze velden in de instellingen leeg laat, wordt de code wel zoals je wilt.
Heb je hier toevallig al wat ingevuld?
Het ging mij niet om prefixes en suffixes, maar om identieke variabelenamen :) (shadowing)
Daar ben ik mee bekend ;)


Enfin dat is ondertussen maar even balen :P
Pagina: 1