[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/soc-kdevelop-refactoring
From: Tom Stephenson <tomajoha () gmail ! com>
Date: 2006-08-19 14:56:57
Message-ID: 1155999417.542950.23412.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 574612 by tstephenson:
inc sample code
M +3 -0 codemodel/fakefield.cpp
M +4 -0 codemodel/fakemethod.cpp
M +7 -8 cpluspluscoderefactorer.cpp
M +4 -2 cpluspluscoderefactorer.h
M +13 -6 renamemembercommand.cpp
M +1 -0 renamemembercommand.h
A samplecode (directory)
A samplecode/salesperson.cpp [License: no copyright]
A samplecode/salesperson.h [License: no copyright]
--- branches/work/soc-kdevelop-refactoring/codemodel/fakefield.cpp #574611:574612
@@ -18,6 +18,9 @@
*/
#include "fakefield.h"
+FakeField::FakeField()
+{
+}
FakeField::FakeField(QString fqNameIn,IRegion *regionIn,QString nameIn,IReturnType \
*returnTypeIn,IClass \
*declaringTypeIn):mIsAbstract(false),mIsStatic(false),mIsVirtual(false),mIsPublic(fals \
e),mIsProtected(false),mIsPrivate(false),mIsInternal(false),mIsReadOnly(false),mIsProt \
ectedAndInternal(false),mIsProtectedOrInternal(false),mIsLiteral(false),mIsOverride(false),mIsNew(false),mIsArray(false)
{
mFullyQualifiedName = fqNameIn;
--- branches/work/soc-kdevelop-refactoring/codemodel/fakemethod.cpp #574611:574612
@@ -18,6 +18,10 @@
*/
#include "fakemethod.h"
+FakeMethod::FakeMethod()
+{
+}
+
FakeMethod::FakeMethod(IRegion *bodyRegionIn,QString fqNameIn,IRegion *regionIn, \
QString nameIn,IReturnType *returnIn,IClass *declaringTypeIn,IRegion * \
decRegion):mIsConstructor(false),mIsAbstract(false),mIsStatic(false),mIsVirtual(false) \
,mIsPublic(false),mIsProtected(false),mIsPrivate(false),mIsInternal(false),mIsReadOnly \
(false),mIsProtectedAndInternal(false),mIsProtectedOrInternal(false),mIsLiteral(false),mIsOverride(false),mIsNew(false)
{
mBodyRegion = bodyRegionIn;
--- branches/work/soc-kdevelop-refactoring/cpluspluscoderefactorer.cpp #574611:574612
@@ -20,16 +20,15 @@
#include "cpluspluscoderefactorer.h"
-IRefactorCommand * CPlusPlusCodeRefactorer::getAddMemberCommand()
+IRefactorCommand * CPlusPlusCodeRefactorer::getAddMemberCommand(RefactorerContext \
*ctx,IClass * cls,IMember * member) {
-#warning CPlusPlusCodeRefactorer::getRenameMemberCommand() returning 0
- return 0;
+ return new AddMemberCommand(ctx,cls,member);
}
-IRefactorCommand * CPlusPlusCodeRefactorer::getRenameMemberCommand()
+IRefactorCommand * CPlusPlusCodeRefactorer::getRenameMemberCommand(RefactorerContext \
*ctx,IClass * cls,IMember * member,QString newName) {
-#warning CPlusPlusCodeRefactorer::getRenameMemberCommand() returning 0
- return 0;
+
+ return new RenameMemberCommand(ctx,cls,member,newName);
}
MemberReferenceCollection \
CPlusPlusCodeRefactorer::findFieldReferences(RefactorerContext *ctx,QString fileName, \
IClass *cls, IField *field) @@ -46,8 +45,8 @@
MemberReferenceCollection \
CPlusPlusCodeRefactorer::findMethodReferences(RefactorerContext *ctx,QString \
fileName, IClass *cls, IMethod *method) {
- //faking a ref search result
- MemberReference * ref = new MemberReference(ctx,fileName,8,20,17, "getSales", \
"setSales(i,salesFigure);"); + //faking a ref search result pos the '8' is fake
+ MemberReference * ref = new MemberReference(ctx,fileName,8,20,17, "setSales", \
"setSales(i,salesFigure);"); MemberReferenceCollection col;
col.append(ref);
Q_UNUSED( ctx );
--- branches/work/soc-kdevelop-refactoring/cpluspluscoderefactorer.h #574611:574612
@@ -27,12 +27,14 @@
#include "codemodel/refcodemodel.h"
#include "codemodel/fakeclass.h"
#include "codemodel/fakeparser.h"
+#include "addmembercommand.h"
+#include "renamemembercommand.h"
class CPlusPlusCodeRefactorer: public BaseRefactorer
{
public:
- IRefactorCommand * getAddMemberCommand();
- IRefactorCommand * getRenameMemberCommand();
+ IRefactorCommand * getAddMemberCommand(RefactorerContext *ctx,IClass * cls,IMember \
* member); + IRefactorCommand * getRenameMemberCommand(RefactorerContext *ctx,IClass \
* cls,IMember * member,QString newName); static MemberReferenceCollection \
findFieldReferences (RefactorerContext * ctx,QString fileName, IClass *cls, IField \
*field); static MemberReferenceCollection findMethodReferences (RefactorerContext \
*ctx,QString fileName, IClass * cls, IMethod * method); static int \
getMemberNamePosition (IEditableTextFile *buffer, IMember *member);
--- branches/work/soc-kdevelop-refactoring/renamemembercommand.cpp #574611:574612
@@ -45,14 +45,21 @@
int i = txt.find(mMember->name());
- bufferDec->deleteText(i,mMember->name().length());
- bufferDec->insertText(i,mNewName);
+ bufferDec->deleteText(i+pos1,mMember->name().length());
+ bufferDec->insertText(i+pos1,mNewName);
IMember *holdingMember = new FakeField();
holdingMember->name() = mNewName;
mRefactoredMember = CPlusPlusCodeRefactorer::findGeneratedMember(mCtx, bufferDec, \
mCls, holdingMember,"renamemember");
+ MemberReferenceCollection mCol = \
CPlusPlusCodeRefactorer::findFieldReferences(mCtx,(mMember->region())->fileName(), \
mCls, (static_cast<FakeField*> (mMember))); +
+ QValueList<MemberReference*>::Iterator it = mCol.begin();
+ for (; it != mCol.end(); ++it){
+ (*it)->rename(mNewName);
+ }
+
}
else if(dynamic_cast<IMethod*>(mMember)){
@@ -69,8 +76,8 @@
int i = decTxt.find(mMember->name());
- methodDec->deleteText(i,mMember->name().length());
- methodDec->insertText(i,mNewName);
+ methodDec->deleteText(i+pos3,mMember->name().length());
+ methodDec->insertText(i+pos3,mNewName);
int pos5 = methodDef->getPositionFromLineColumn (mMember->region()->beginLine(), \
mMember->region()->beginColumn());
@@ -80,8 +87,8 @@
int y = defTxt.find(mMember->name());
- methodDef->deleteText(y,mMember->name().length());
- methodDef->insertText(y,mNewName);
+ methodDef->deleteText(y+pos5,mMember->name().length());
+ methodDef->insertText(y+pos5,mNewName);
IMember *holdingMember = new FakeMethod();
--- branches/work/soc-kdevelop-refactoring/renamemembercommand.h #574611:574612
@@ -29,6 +29,7 @@
#include "codemodel/fakemethod.h"
class RenameMemberCommand: public IRefactorCommand
{
+public:
RenameMemberCommand(RefactorerContext * ctx,IClass * cls,IMember * member,QString \
newName); ~RenameMemberCommand();
void refactor();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic