Gerar código com base em outro

Boa tarde!

Gostaria da ajuda de vocês.
Estou precisando de uma ajuda para criar um método java que gere uma determinada numeração com base em outra.

Exemplo: Tenho um cadastro para categoria outro para subcategoria e um para tarefa.
No caso quando eu cadastrar a categoria eu digitaria um código para essa categoria, e ao criar uma subcategoria o código da mesma iria ser gerado baseado no da categoria, e o mesmo vale para a tarefa, porém a tarefa já seria baseado na subcategoria.

Categoria 1 - Administração Geral = 1000
Subcategoria - Administração = 1100
Tarefa - Administrador = 1101

Categoria 2 - Despesas Diversas = 2000
Subcategoria - Despesas Extras = 2100
Tarefa - Limpeza = 2101

Nesse caso eu teria, um margem de 99 números de tarefas para cada subcategoria e 9 subcategorias para uma categoria.

Agradeço desde já.

Hum…você pode dar alguns exemplos de como deseja usar esse método e quais seriam os resultados esperados? O que ele recebe de parâmetro, etc…

Algo como:
gerarNovoCodigo(<o que passamos aqui?>) // resultado é:

Se der alguns exemplos como esse fica mais fácil entender o que você precisa.
Ah, e claro, você dizer onde está sua dúvida exatamente, pois nao apresentou nenhuma.

Entendi, na realidade eu não consegui fazer nada e por isso não coloquei nenhum exemplo com código, vou tentar algo e posto novamente ok. Agradecido.

Algo assim?

class Tarefa {
  int id;
  Subcategoria subcategoria;

  String getIdString() {
    if (id < 10) return "0" + id;
    else return "" + id;
  }

  String getCode() {
     return subcategoria.getCategoria().getIdString() + subcategoria.getIdString() + getIdString();
  }
}

class Subcategoria {
  int id;
  Categoria categoria;

  String getIdString() {
    return "" + id;
  }

  String getCode() {
     return cadegoria.getIdString() + getIdString() + "00";
  }
}