}
if (type == MESSAGE_DECL) {
return new PbMessageDefImpl(node);
}
if (type == MESSAGE_BLOCK) {
return new PbBlockImpl(node);
}
if (type == FIELD_DECL) {
return new PbFieldDefImpl(node);
}
if (type == FIELD_TYPE) {
return new PbFieldTypeImpl(node);
}
if (type == GROUP_DECL) {
return new PbGroupDefImpl(node);
}
if (type == ENUM_DECL) {
return new PbEnumDefImpl(node);
}
if (type == ENUM_BLOCK) {
return new PbBlockImpl(node);
}
if (type == ENUM_CONST_DECL) {
return new PbEnumConstantDefImpl(node);
}
if (type == SERVICE_DECL) {
return new PbServiceDefImpl(node);
}
if (type == SERVICE_BLOCK) {
return new PbBlockImpl(node);
}
if (type == SERVICE_METHOD_DECL) {
return new PbServiceMethodDefImpl(node);
}
if (type == SERVICE_METHOD_BLOCK) {
return new PbBlockImpl(node);
}
if (type == EXTEND_DECL) {
return new PbExtendDefImpl(node);
}
if (type == EXTEND_BLOCK) {
return new PbBlockImpl(node);
}
if (type == VALUE) {
return new PbValueImpl(node);
}
return new PbPsiElementImpl(node);