Bug 14368 Create getter and setter insert code into read-only file
1. Create a class C as follow: package jp1; public class C { private int id; } 2. Close it and mark it as read only 3. Reopen it and you should not be able to modify anything 4. From the outline view, select "id - int" and right mouse click and select "Create getter and setter". 5. The class becomes package jp1; public class C { private int id; /** * Gets the id. * @return Returns a int */ public int getId() { return id; } /** * Sets the id. * @param id The id to set */ public void setId(int id) { this.id = id; } } and the editor is dirty, but you cannot save it until clear the read-only flag.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewTypeWizardPage.java
createTypeMembers(createdType, imports, new SubProgressMonitor(monitor, 1));
		
		imports.create(!isInnerClass, new SubProgressMonitor(monitor, 1));
		
		ICompilationUnit cu= createdType.getCompilationUnit();	
		ISourceRange range;
		if (isInnerClass) {
			synchronized(cu) {
				cu.reconcile();
			}
			range= createdType.getSourceRange();
		} else {
			range= cu.getSourceRange();
		}
		
		IBuffer buf= cu.getBuffer();
		String originalContent= buf.getText(range.getOffset(), range.getLength());
		String formattedContent= StubUtility.codeFormat(originalContent, indent, lineDelimiter);
		buf.replace(range.getOffset(), range.getLength(), formattedContent);
		if (!isInnerClass) {
			String fileComment= getFileComment(cu);
			if (fileComment != null && fileComment.length() > 0) {
				buf.replace(0, 0, fileComment + lineDelimiter);
			}
			buf.save(new SubProgressMonitor(monitor, 1), false);
		} else {
			monitor.worked(1);
		}
		fCreatedType= createdType;
		monitor.done();